f,f,|iiixiirH5
$4J5/355f $ii/|fir Hiiiiifi 1554
^ wmiE ccMPaTER SYSTEMS ummiME «
UPDATE COMPUTER SYSTEMS is Editgd and Published by Frank and
Carol Davis of P.O. Box 1895, Peru, IN 46978 USA. The phone
nuMber is 317-473-8831 for both voice and fax, with norMal phone
hours being between 5 P.M. and 9:38 P.M. Eastern Tiwe during the
wpek and nnnn to 6 P.M. on weekends. Please use the answering
Machine if we are not howe. Most answers to questions left on
the Machine will be by Mail, long distance charges are too
costly for a SMall Magazine.
y.iiling date of the Magazine: all issues will be Mailed out near
the 2flth of the Months of October. Januaru. April and July^ All
Mailings within the USA are by bulk Mail and May take a few
weeks to reach you at the Most. Those wishing to have faster
service May pay $4 extra for First Class Mail. The present rate
for North Awerica is $18 in US$, and $22 for the rest of the
world. Back issues of the Magazine are available for $16 per
year in North Awerica and $18 elsewhere (it is cheaper to Mail a
bunch as opposed to one issue at a tiMe). There are four issues
to a year, with each year of a subscription starting in October
and ending with the July issue, at which tiMe your subscription
renewal is due. TiMely renewals are what keep us in business?
Assistance in publishing this Magazine is provided by you the
readers, Many of whoM have contributed often in the way of
reviews and articles. He offer you our heai*tfelt thanks. Our
Main assistant locally is longtiMe friend and colleague, Eliad
P. HannuMj Poet and Psychologist, as well as Sinclair coMputer
user. Many thanks to our regulars such as Mike Felerski, Bill
Cable, Peter Hale, Paul HolMgren, Al Feng, Don Lanbert, Bob
Hartung and Many others. Vou are all welcoMe to subMit Material
for inclusion in the Magazine. Please Make all hard copy
subMissions letter or NLQ; no draft print copies, as we do not
have Much tine for re-typing. Send at least two copies hard copy
and the ^u*ticle or artwork on disk where possible. No audio tape
subwissions, as we do not use tape as a Media, please. Try to
avoid flowery or hard to read f onts ... unless you are showing us
a saMple of the output of a prograM . If artwork is to be
included in the article, please let us know in what order you
think it should be displayed.
Those wishing to place ads in UPDATE MAGAZINE: We have two ways
of handling ads. ONE, we will do reciprocal ads for other
publications (generally on a year for year basis, with you
sending us a copy of the issues the ad is placed in). The other
way is to purchase ad space froM us, with the fol lowing rates in
effect for now: $15 per quarter page; $25 per half page; and $48
per full page ad. This is per issue. For inclusion in all four
issues, you pay for three issues, in advance, and get the fourth
ad free. Should you have questions on this please contact Frank
Davis, by Mail or phone as listed above.
He hope to be of service to you. Thank you?
UPDATF COMPUTER PAGF niRECXORY
The computer that an article concerns is marked by
using the f oil owing mark at the start of the page:
TS - article for TS20G8 or Spectrum; QL - article for
QL; ZX = article for TS1000, ZX91, TS1500; 9S =
article for the Z89.
Front couer art Rbed Kahale of CRTUQ, the Chicago area
user group.
GI — Page 1: Directory of articles In January Issue
□L— Page 2: fl-DEE-DOO-DflH 1.8 fl Front-End For the
Jnzlp Utllltu bu fll Feng
GI — Page 3: Wanted, For Sale, and Short Meuscllps
GI— Page 4: RNG ad, for Rod Gouen
ZX— Page 5: Fix the ZX81^TS1988 Loose Jack Problen
bu Bill Harner
IS— Page 6: 2868 Block-Moue Error bu Bob Hartung
TS— Page 6: The Ultlnate flUTOSTRRT b^ Bob Suoger
GI — Page 8: Mechanical Affinity ad
TS — Page 9: Code for screen dunps to 24 pin printers
on 2868 b^ Charles Bothner
TS— Page 14: TS2868 Tape To Disk Projects and
Ryallablllty bj; Frank Daols
TS— Page 15: fl Guide to Using "ctas.Br", The
Custonlzer, and the Prlnter-fl Revised Version of Tasuord
2 bji Larrji Crawford
OL — Page 28: Miracle In Meuport, 2nd Tine Around
TS — Page 21: Sone Connents on '"bltln.BI", A Utlllto to
Create and Print 1 or 22 one-line screen files to a Z4-
pln or bubble Jet printer bw Larru Crawford
GI— Page 24: OZX-ad
GI— Page 24: Back Issues of Update Special Offer
GI-- Page 25: Modens or Black Magic bu Abed Kahale
□L— Page 26: QBOX CBBS)
GI — Page 26: Conputer Classlcs-ad
QL— Page 27: Using the OL bu Ton^ Blizzard
OL— Page 29: Exanple Using XChange t MallMerge bu Tony
Bl Izzard
OL— Page 38: Mechanical Afflnltii-ad
OL-- Page 31: QL Public Donaln t Shareware bji Paul
Ao Ingren
OL— Page 33: OLerk - A Reulew b^ Hugh Howie
QL — Page 35: Archive Series Part 15: Entering Quero- a
Progran to Interrogate Anu Archive Database bv Bill Cable
OL— Page 38: A-DEE-DGO-DAA 1.8 Listing
88— Page 41: Correction for Z88 COM_CLI fron John
Pegran
88— Page 42: Various Z88 Ads
ZX— Page 44: ZX-Text Article, plus AFR Software Ad
GI— Page 47: Mew Sinclair Newsgroup on USEMET bu Tin
Swenson
88— Page 58: Z88 Source Book t OL Suruluors Source Book
Back Covers — TS2868 & OL Issue Disks
A-DEE-DOO-DAH 1.0
A FRONT-END FOR THE UNZIP UTILITY
By Al Feng
A month-or-so-ago, I received several ZIP'ed files from Nazir
Pashtoon (CATUG) and the UNZIP utility (version 2.00) which had
been "ported to Qdos by Erik Slagter" [January 1993]. ZIP'ed
files are files which have been compressed by algorithm.
The UNZIP utility — like its DOS cousin — is implemented
from the "command line" prompt. If you make a Mistake during
implementation of UNZIP, you get to see a menu of "options" that
you can (should) select from.
If you are like me, you will find the abbreviated "sample"
syntax that seem prevalent to be cryptic. This is partially
alleviated by Paul Holmgren's addendum in the Unzip_txt that
accompanies the program; but, it took me a few tries to realize
that Paul had created a SUB-DIRectory on his harddrive ( " . . . where
I keep the unzip file").
Being the dense one, it seemed to me that the only way I would
be able to "remember" how to unzip a program was if I nested the
program's function within another. Hence, A-DEE-DOO-DAH
(DooDah_Bas is how I actually SAVE it) is a SuperBASIC front-end
to implement the UNZIP program from a single-key select menu.
Because this implementation was "carved" from a version of
QLUTter's SuperBASIC source, it has A LOT OF EXTRA BAGGAGE in its
program LISTing. The EXTRA BAGGAGE means that there are some
end-user conveniences; but, sub-directories are not one of them.
The DooDah_Bas program can be used as the basis for almost any
other simple "utility" that you might wish to implement — the
core of the program is in the DEFined PROCedure named "MAIN"
(Lines 610 to 710) .
Line 700 is the active line. This is a "straight" UNZIP' ing
which does NOT implement any of the options — this took some
trial and error on my part, and there is probably a more elegant
way to implement it. Note especially that there is a set of
double quotes after the semi -colon that separates the command from
the filename where you may wish to insert an option.
DATA_USE (Line 140) is a TK2_EXTension the last time I looked.
While your disk interface probably has TK2_EXTensions , this is an
optional line. Paul Holmgren suggests using RAM1_ as a
destination, and I agree as it will expedite the UNZIPping
process .
Since I don't have the ZIP portion of the utility (there must
be one, right?), this is theoretically only "half" the utility.
Still, I think that you will find it worthwhile to INPUT and SAVE
if you use UNZIP with any frequency (more so if used only
ocassionally) .
UNZIP should be in the public domain. Check with someone in
your user group.
HAPPY TRAILS, AND COMPUTING, TO YOU
2
ii-
WANTED, FOR SALE, AND SHORT NEWSCLIPS
A) Sorry, but no Editorial for this issue, nothing to harp on, or
ax to grind.
B) Extra, extra, for all of those who have wished to use a fax
modem on your QL, the software is on its way. It is being Beta-tested
now by the two authors. One version will be for Class 1 fax modems,
and the other for Class 2 fax modems. This will be as shareware or
public domain. Stay tuned, or check with us in March or April for more
news about this... such as how and where to get it. This will add a
whole new dimension to your use of the QL. I highly recommend that if
you wish to do this, then you should obtain the Hermes co-processor
for your computer from either T F Services or Mechanical Affinity.
C) Pardon the lateness of this issue; it has been the cold and flu
season here in Indiana, as well as doing without the assistance of
Eliad on this issue. Short handed and feeling out of sorts. Will be
more on track next issue.
D) News from Taylor Penrose of Jupiter, Florida is that he is
trying to start a QL BBS near the first of this year. Hours of
operation will be 0100 to 1400, or as posted. VTIOO Terminal
Emulation, 300 to 2400 BAUD, No Parity. The number will be 1-800-942-
6721. At the moment he would like to limit it to text (if it works out
perhaps the users can talk him into adding uploads and downloads). It
will be running on his IBM clone, and his 1-800 covers North America
and Puerto Rico.
E) AVAILABLE! Have you bought a copy of an Issue Disk from the
following authors, perhaps awhile back? Well... we here at UPDATE! have
had upgrades on these programs over the last year or so. Some of them
are quite significant upgrades! If they are written by Al Feng, Bill
Cable, or Bob Hartung, or the QL Compendium, then either return the
original disk with $3, or proof of purchase and $4, to either the
author or UPDATE! Magazine. It can often pay to have the latest
version due to added features as well as any bug correction and
interface changes.
F) How about those of you who like to mess around with code and
languages on your QL get some contributions off to the QL HACKER'S
JOURNAL, in care of its fine editor, Tim Swenson, 5615 Botkins Rd,
Huber Heights, Ohio 45424.
G) WANTED: One TS2050 modem for A.F.R. Software, at 1605
Pennsylvania Ave. #204, Miami Beach, Florida 33139, phone 305-531-
6464. Help Al out folks.
H) FOR SALE: Complete TS2068 computer system that includes
computer with Roraswitch, Aerco printer Interface, color Magnavox
monitor, Larken disk drive system, disk drives, A & J Microdrive, 2050
modem, software and books. Contact Keith Worrell, with SASE for
complete list, at Box 173 RRl , Lakeview Dr., North Hero, VT, 05474. If
not sold may be trashed. Sounds like a good system, so how about some
of you readers helping Keith out.
3
' RMG '
ENTERPRISES
Supports
Sinclair/Timex
Users!
Send le^a] 3.A.3.E. with request for price
sheet. Specift' model interest. Send $4 Ajr
GIANT GIFT catalog. (Includes ALL price
lists) Phone or FAX for inforntation on
prices and availability.
Nail to:
14784 South Quail Grove Circle
Oregon City, OR 97045
503/655-7484 * FAX 503/655-4116
Fix the ZX-81/TS10Q0
Loose Jack Problem
by Bill Harmer
The three jacks on the side of
this computer that accept MIC,
ear and power plugs are of a
somewhat flimsy construction
that may become apparent after
a few years of use (or earlier
on rough usage) . The cure is
fortunately rather simple for
the mechanically/electronically
handy user or technician.
Step 1 - Take the bottom half
of the case off (without
removing the printed circuit
board inside or the keyboard
membrane plastic sheet at this
time) There are 5 screws that
must be removed from the bottom
of the case. This is not as
easy as it might seem as only 2
are visible. The other three
are found under the rubber feet
(rectangular strips glued on
the rear corners) . These can be
simply pulled off in order to
remove the screws under them.
Once the screws are completely
removed, the bottom half of the
plastic case should separate
with only light prying. Any
force indicates that the screws
are not completely removed.
Step 2 - The printed circuit
board is now secured to the top
half of the plastic case by two
screws. See where they are
(upper to mid-left near the RAM
pack opening and near the
center, more towards the middle
of the case, typically) . For
reassembly, note where they
came from, with a soft pen,
say) . The printed circuit board
must be moved up and away from
the top half of the case about
one or two inches only (so as
not to disconnect or damage the
fragile keyboard matrix/
membrane plastic from the
connector on the board) .
Step 3 - Holding the printed
circuit board so that one can
see the three little plastic
boxes that house the jacks, any
prongs that are bent too far up
and out, may be carefully
pushed back into position with
a small screwdriver or tooth-
pick. Several pushes back may
be necessary until the
springiness is overcome in its
attempt to reposition the prong
outwards. Now test the jacks
with the cable for the cassette
recorder (no power applied) for
mechanical fit.
Step 4 - Now you are ready to
reassemble the computer making
sure that the screws for the
printed circuit board are not
inserted in the holes meant for
the screws that hold the
outside bottom shell of the
case. If you put one or both of
the set screws in the wrong
place, the screws will not go
in when you try to screw the
back on again and all the
screws on the outside will have
to be removed and the bottom
taken off again to find the
source of the problem. Do not
disconnect the little metal bar
or whatever; that ground
contact with the metallic paint
inside the case that provides
some measure of protection from
RFI for the TV. etc. on VHP
models of the computer.
Step 5 - Once the printed
circuit board is secured inside
the case with its two screws
and the bottom of the case
secured with its five screws
and the little rubber feet or
runners stuck back on, you are
ready to test the computer to
see if the original problem is
fixed (and no new ones added) .
Note that loose power jack into
the computer can also cause the
save/load crashes and some
users have either tightened up
that jack too, or replaced it
with hardwiring the power
supply wire to the P.C.B. and
adding some safety device like
a switch on the power line or
pilot light (standard LED and
1/2 watt, IK ohm for example)
to make sure it is not left on.
5
20e8 BLOCK— MOVE ERROR
— Bob Hartung —
My face was red when I opened the fall
issue of UPDATE and saw I had transposed
two digits in the number of bytes in a
full-screen display of DFILE1 . Anyone who
has read Appendix C of the User Manual
knows the display file plus the attribute
file includes a total of 6912 bytes, as
shown in the correction of line 40 below.
The original listing will work in black
and white but will not transfer colors
because it does not address the attribute
file. My disk drive system died on me as
I was doing the article for UPDATE and so
I lost the listing I sent in until it
appeared in print. Sorry!
40 IF k$="1" THEN LET STP=1638
4: LET INS=INT (STP/256): LET NO
B=6912; LET INB=INT (NOB/256): 6
0 TO 80
The Ultimate AUTOSTART
by Bob Swoger
In the January 1993 Update!
Magazine page 20, Peter Hyman
gave a good clue to writing a
better AUTOSTART program for
the LarKen disk system. Like
Peter, I have seen AUTOSTARTS
that use two tracks. They are
usually made from another
program on the disk, sometimes
called Menu.Bl. Menu.Bl is
provided to allow changes to
the AUTOSTART program and is,
therefore, identical to it.
Three tracks on the disk now
contain the same program!
AUTOSTART programs instruct the
computer what to do when the
machine is turned ON with the
ENTER key held down or when the
RAND USR 100: NEW sequence is
typed in on either the TS2068
or SPECTRUM systems. Here are a
few simple rules:
RULE 1 The ULTIMATE AUTOSTART
should do little more than
reset RAMTOP, call another
program from the disk (LOAD the
program and RUN it) and save
itself to that disk.
RULE 2 The ULTIMATE AUTOSTART
should be 5089 bytes long.
Using the CHAMBERS UTILITIES
disk, you will find that an
AUTOSTART made in both the
TS2068 mode and the SPECTRUM
mode will always start at
address 22490 and contain 5089
bytes.
RULE 3 The ULTIMATE CLEAR
number for both TS2068 and
SPECTRUM is 27577. One need not
execute the PRINT 65536-FREE
misprinted in the UPDATE!
article to find the lowest
point to move RAMTOP, just use
27577 instead. The area saved
will always be one track long,
5090-1 bytes.
Since many menu programs are
too long to fit on a single
track as an AUTOSTART SAVE in
the TS2068 mode, (SPECTRUM
gives us 2955 bytes more) I
submit the following subprogram
that could be included in any
menu program to create
AUTOSTART, Since this is the
AUTOSTART program included
within the lines of the
LogiCall program, it is
numbered accordingly:
49 LET H=CODE "d" : LET Z=PEEK (
PI+PI)=CODE "1"
110 GO TO VAL "460-(30*Z)"
400 CLEAR VAL "65367"
410 REM RANDOMIZE USR CODE "d"
: OPEN # VAL "4","dd"
420 RANDOMIZE USR CODE "d" : LO
AD "L.Bl"
430 DELETE RND,VAL "399"
440 DELETE VAL "461", VAL"9999
450 DELETE VAL "421", VAL"459"
460 CLEAR VAL "27577":
RANDOMIZE USR CODE "f": GO TO V
AL "400"
In line 49, H is assigned the
value 100 to save RAM space
6
when subsequent needs for the
value 100 are needed. The heavy
use of VAL and CODE is to save
RAM space and will be explained
later in this article.
LET Z = PEEK (PI+PI) = CODE "1"
reduces down to LET Z = (PEEK 6
= 49) assigning Z the value 1
if the software finds itself
running on the TS2068 and 0 if
running on the SPECTRUM.
EXPLANATION: If the TS2068 ROM
is operating the system, byte 6
hold the value 49. The SPECTRUM
ROM holds 203. Therefore, if
the TS2068 ROM is operating,
the boolean operator (PEEK
6=49) will be true and Z will
equal 1. If the SPECTRUM ROM is
operating, the boolean operator
(PEEK 6=49) will be false and Z
will equal 0.
Line 110 bypasses lines 430 to
450 in the Spec'y mode thus
avoiding a crash since the
SPECTRUM does not have a delete
command.
Line 400 sets RAM TOP to a
place compatible to fonts and
other favorite machine code.
You may choose any other number
you like up to 65535.
Line 410 is included in case
one MUST open stream/channel 4.
Since opening stream/channel 4
conflicts with ZEBRA Talkers
and eats up precious RAM space,
it is REMarked out. Opening
stream/channel 4 really has no
added programming value in most
cases. Just edit REM out if you
need to open stream/channel 4 .
Line 420 calls the start-up
program.
Lines 430 to 450 delete all un-
needed lines on the TS2068 from
the program which contained
this AUTOSTART sub-program thus
keeping the required space to
one track. This is not required
on the SPECTRUM because: 1) not
having a DELETE command in its
vocabulary it can't delete
lines! and 2) SPECTRUM gives us
2955 more bytes of program
space on an AUTOSTART save.
Finally, line 460 sets RAM TOP
to the ULTIMATE value which
will save exactly 5089 bytes,
exactly the size of one LarKen
track, the AUTOSTART save
routine is called, and 400 is
given to the AUTOSTART header
as the line to auto RUN once
this program is loaded.
To use this sub-program, simply
merge it into your favorite
menu program using the
appropriate re-numbering of the
statements and cause some
keyboard action to send it to
the beginning statement of this
sub-program. If you use it as a
stand alone program, the DELETE
statements can probably be
removed. When the sub-program
is executed, the NMI tone will
sound and you will either have
to press the 'D' key to
continue the save to disk or
the 'A' key to interrupt the
program to change 'L.Bl' to
'Menu. HI' in line 420 if you
want to call Menu.Bl instead of
LogiCall when you boot the
disk. Next type GOTO 460
<ENTER> and 'D' after the tone
to save the modified AUTOSTART.
My concern, however, is that
you have not yet discovered
LogiCall! Many folks who now
use LogiCall have discovered
that without it on every disk,
LKDOS is a 'NAKED' system which
requires you to do a lot of
typing (i.e. RAND USR 100: GOTO
1: RAND USR 100: LOAD
"filenm.Bl" as an example of
LOADing "filenm.Bl" on drive
1). LogiCall creates the
ULTIMATE AUTOSTART for you
simply by pressing the 'A' key
<ENTER> and 'D' at the
'Program?' prompt. Get and use
LogiCall !
Because the AUTOSTART programs
others have written often use
two tracks, I have usually been
able to find room on even a
full disk to add LogiCall
(L.Bl) by using LogiCall 's
embedded AUTOSTART program to
call the other person's Menu.Bl
program on boot-up and the disk
still works the way it did
before I added LogiCall !
A)eCHAMICAl
AFFIWITV
513 eAST i^AIM ST. OK 5231 VILTOW VQOP CT
1>eKU IM 46970 IMPIAHATQLI6 Ifi 46354
317 473 e031 317 291 6002
Brin^^ing the very best to you in SINCLAIR software and
hardware from around the world. We want to provide
service to you the customer. Meed something, give us a
call. Mal<^e all checks or money orders out to either Frank
Davis or Paul Holmgren . Thanks? Payment in US$.
SPECIALS GOOD TILL CURRENT SUPPLY EXHAUSTED
MAfrNAYQX BCP MONITORS -These 80 column monitors contain RGB, Composite video,
and can also accept a VCR hoolcup to play movies on. They have built-in sound, and
with the flicic of a switch can give you a green mono screen. They are ideal for the QL,
Spectrum or TS2068 (even for the ZX81 if you have fixed it for monitor input). They are
offered for $125 IIS$, and this includes shipping.
TIMRX SiNtLAiB CTMPirTHtf - Color computer that works with monitor or with
TV, with power supply and monitor, as well as composite cable and tape recorder
cables...plus we throw in two TS2068 tape programs as a bonus. All of this for only $50
and this includes shipping. Supply is limited.
TOM BKl^ INCREDIBLfc RFyi^CEMEWT ROM FOR THE TSIOOQ The ideal upgrade for
your ZX81 or TSIOOO to improve readability of some cliaracters, correct bugs, and
improve matli functions. This requires you to open your case, so only attempt this if
you are a tinkerer, or have a friend who is familiar with electronic hardware. We are
including one free TSIOOO program tape with each ROM kit. This is available for $12.
PRINTKR SIIPPIJKS — For a limited time we have (a) boxes of Olivetti InkJet Ampules
selling at $5 per box, each box contains 4 Inkjet cartridges; (b) replacement ribbons for
the Okimate 20. The black ribbons are $4, and the color ribbons are $5. At these prices it
is a good idea to stock up while you can.
PAPiai TOR THiiRMAL PRINTEBS stock up on paper for this great little dot
matrix printer while we still have a good supply. We are offering it for $5 a roll or
three rolls for $10. This includes shipping. We also have TS2040 printers for $25 which
also includes shipping. These are still great printers for your TSIOOO, TS2068 or TS1500
and are the best printers to use to do listings.
Frank ,
This is an assembly language program to copy T/S 2068
screens to an EPSON compatible 24 pin printer. The program
resides in the printer buffer area of system RAM and
it can copy screens in either the normal 32 column mode
or the expanded 64 column mode. It is presently tailored
for the EPSON LQ-510 printer which I am presently using,
but the ESC codes should be compatible with virtually
all 24 pin printers with EPSON graphics compatibility.
The program contains its own printer handler to avoid
the necessity of having to patch any other resident handlers
to accept non-ASCII codes. My present printer port is
an AERCO interface residing at port address 127 (7FH) .
An assembly code listing is included. The program operates
in the 32 column screen copy mode as listed. To convert
to the 64 column mode, it is necessary to POKE 4 locations
within the code. These locations are:
ADDRESS FOR 64 COL. MODE FOR 3 2 COL. MODE
23366 (5B46H) 2 3
23474 (5BB2H) 0 24
23475 {5BB3H) 0 15
23545 (5BF9H) 4 3
For the 32 column mode, each of the screen pixels is
output in a 3X3 dot expansion to the printer. Since the
printer is : conditioned for a graphics mode operation
of 180 dots/inch vertical and 180 dots/inch horizontal,
this results in a display of 60 pixels/inch in both direc-
tions. Since there are twice as many bytes output per
line in the 64 column mode, the resolution is changed
to 3 dots/pixel in the vertical direction and 2 dots/pixel
in the horizontal direction. There are a total of 3 ESC
code sequences in the program. The first is at address
23534 (5BEEH) . This sequences the graphics mode vertical
spacing to 180 dots/inch. The second ESC sequence is
at 23540 {5BF4H) . This sequence sets up the output format
for one line of graphics code to 768 vertical columns/
line in the 32 character mode and 1024 vertical columns/
line in the 64 character mode, since there are 512 pixels/
line in this mode. The third ESC sequence starts at 23548
(5BFCH) and this restores the normal printer vertical
dimensions after the screen dump is complete. Several
spare bytes have been incorporated into each table to
allow for patching of these tables if non-EPSON compatible
printers are used. The first entry in each table must
be the number of characters to be sent to the printer
in the ESC sequence.
If a printer interface not using port address 127 (7FH)
is used, it will be necessary to patch a total of 3 loc-
ations with the correct port address. These addresses
9
are 23521 (5BE1H) , 23528 (5BE8H), and 23530 (5BEAH).
I am supplying you with a disk containing both the 32
column and 64 column versions of the program. You will
also find samples of both types of screen copys. The
program is entered with a RAND USR 23296 command.
Best regards,
Charles G. (Chuck) Bothner
This is a demonstration of the 64 character per line screen dump
program. The foUowing are filler characters to put more data
on the screen. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXThiS is a demons
tration of the 64 character per line screen dump program. The fo
llouiing are filler characters to put more data on the screen.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
29 I 3£j I I iLl L
10 DRY OUTDOOR TEMP.
UED-OCT 20, 1993 T IME = 12 : 15 : 10
This 32 column screen dump is data from my
2068 data gathering program for a Heathkit
Weather Computer Interface.
1 0
"CPYPRT.Cl" code for screen dumps to 24 pin printers.
5B00
ENTR:
E5
PUSH HL
;save registers
5B01
D5
PUSH DE
5B02
C5
PUSH BC
5B03
CD225B
CALL OUTP
;set up vert. spacing on printer
5B06
210040
LD HL,4000
; start addr. of disp. block 0
5B09
CD365B
CALL OUTB
;output 1 block of display data
5B0C
210048
LD HL,4800
; start addr. of block 1
5B0F
CD365B
CALL OUTB
; output block 1 data
5B12
210050
LD HL,5 00 0
; start addr. of block 2
5B15
CD365B
CALL OUTB
;output last screen block
2 1 FC 5B
T n UTT D T? C Ti
LiU nij , KIjO i
;set up for normal printer space
5B1B
CD255B
CALL AA
; output the ESC sequence
5B1E
CI
POP BC
; restore regs.
5B1F
Dl
POP DE
5B20
El
POP HL
5B21
C9
RET
; done
5B22
OUTP :
21EE5B
LD HL,SETV
; addr. of printer vert . spc . table
5B25
AA:
C5
PUSH BC
;save regs.
5B26
3E0A
LD A, OA
;send LF for new line
5B28
CDD65B
CALL OTPR
5B2B
7E
LD A, (HL)
;get # of chars. to be output
5B2C
47
LD B,A
; store in B reg.
5B2D
BB :
2 3
INC HL
; point to next character
5B2E
7E
LD A, (HL)
;get next char.
5B2F
CDD65B
CALL OTPR
; send it to printer
5B32
10F9
DJNZ, BB
;continue until done
5B34
CI
POP BC
/•restore regs.
5B35
C9
RET
; done
5B36
OUTB:
0608
LD B,08
;8 lines/block
5B38
CC:
0E20
LD C,20
;32 chars. /line
5B3A
E5
PUSH HL
; save the address
5B3B
21F45B
LD HL^OTFM
; graphics setup for 1 line
5B3E
CD255B
CALL AA
; output the ESC sequence
5B41
El
POP HL
; restore address
5B42
DD :
C5
PUSH BC
; save char.& line counters
5B43
EE :
1680
LD D,8 0
;[nask bit for horiz.scan byte
5B45
FF:
3E03
LD A, 03
;3 horiz.bits per pixel
5B47
GG:
F5
PUSH AF
;save the count
5B48
lEOO
LD E,00
;clear the storage reg.
5B4A
E5
PUSH HL
;save the address
5B4B
7E
LD A, (HL)
;get the byte & test pixel
5B4C
A2
AND A,D
; for ink or paper
5B4D
2802
JR Z,HH
;jump if its paper
5B4F
lEEO
LD E,EO
;if ink, set 3 upper bits
5B51
HH:
CDCF5B
CALL GTNX
;get next line of char.
5B54
2804
JR Z,II
/•jump if pixel = 0
5B56
7B
LD A,E
;get the partial data byte
5B57
C61C
ADD A,1C
;add next 3 bits
5B59
5F
LD E,A
; store the partial result
5B5A
II :
CDCF5B
CALL GTNX
;get next line of char.
5B5D
2804
JR Z,JJ
;jump if pixel=0
5B5F
7B
LD A,E
;get partial data byte
1 1
"CPYPRT.Cl" code for screen dumps to 24 pin printers (Cont.)
5B60
C603
ADD A, 03
;set the last 2 bits
5B62
5F
LD E , A
; store completed data byte
5B63
J J :
7B
LD A,E
;get the first of 3 bytes/col.
5B64
CDD65B
CALL OTPR
;sent it to printer
5B6 7
CB43
BIT 0,E
;see if LSB was set on last byte
5B69
lEOO
LD E,00
;clear the storage register
5B6B
2802
JR Z,KK
;jump if the LSB=0
5B6D
1E80
LD E,8 0
•set MSB in next byte
5B6F
KK :
CDCF5B
CALL GTNX
•get next line of character
5B72
2804
JR Z,LL
•jump if the pixel=0
5B74
7B
LD A,E
•get the partial data byte
5B75
C670
ADD A, 70
•set the next 3 bits
5B77
5F
LD E,A
•store partial data byte
5B78
LL:
CDCF5B
CALL GTNX
■get next line of character
5B7B
2804
JR Z,MM
•jump if pixel^O
5B7D
7B
LD A,E
-get partial data byte
5B7E
C60E
ADD A,0E
set the next 3 bits
5B80
5F
LD E,A
•store partial data byte
5B81
MM:
CDCF5B
CALL GTNX
•get next line of character
5B84
2801
JR Z , NN
jump if pixel=0
5B86
IC
INC E
set LSB otherwise
5B87
NN :
7B
LD A,E
get completed data byte
5B88
CDD65B
CALL OTPR
send it to printer
5B8B
CB43
BIT 0 , E
test LSB of last byte
5B8D
lEOO
LD E,00
clear the storage register
5B8F
2802
JR Z,00
jump if the LSB=0
5B91
lECO
LD E,CO
set 2 highest bits otherwise
5B93
00 :
CDCF5B
CALL GTNX
get next line of character
5B96
2804
JR Z,PP
jump if pixel=0
5B98
7B
LD A,E
store partial data byte
5B99
C638
ADD A, 3 8
set next 3 bits
5B9B
5F
LD E,A
store the byte again
5B9C
PP:
CDCF5B
CALL GTNX
get last line of character
5B9F
2804
JR Z ,QQ
jump if pixel=0
5BA1
7B
LD A,E
get partial data byte
5BA2
C607
ADD A, 07
set the last 3 bits
5BA4
5F
LD E,A
store completed data byte
5BA5
QQ:
7B
LD A,E ,
get completed byte
5BA6
CDD65B
CALL OTPR ,
sent it to printer
5BA9
El
POP HL ,
restore original disp.file addr
5BAA
Fl
POP AF ;
restore bit counter
5BAB
3D
DEC A ;
decrement counter
5BAC
2099
JRNZ, GG ;
send 3 sets of same bytes
5BAE
CB3A
SRL D
shift bit mask
5BB0
3093
JR NC,FF ;
cont. until char, is complete
5BB2
180F
JR,SS ;
jump if 32 character mode
5BB4
7C
LD A,H ;
get upper byte of address
5BB5
FE5A
CP A,5A ;
test location of address
5BB7
3006
JR NC,RR ;
jump if not chunk 2
5BB9
3E20
LD A,2 0 ;
offset to 2nd display file
5BBB
8 4
ADD A,H ;
point to addr. in chunk 3
5BBC
67
LD H,A ;
5BBD
1884
JR,EE ;
dump same char, pos.from file 2
5BBF
RR:
7C
LD A,H ;get high byte of address
1 2
CPYPRT.Cl" code for screen dumps to 24 pin printers (Cont.)
5BC0
D620
SUB A, 20
; convert back to chunk 2 addr.
5BC2
67
LD H,A
5BC3
SS
23
INC HL
;bump character address
5BC4
CI
POP BC
;get line & char, counters
5BC5
OD
DEC C
; decrement character count
5BC6
C2425B
JP NZ,DD
;cont. until done with 32 or 64
5BC9
1001
DJNZ ,TT
;cont. for all lines in block
5BCB
C9
RET
;done with display block
5BCC
TT
C3385B
JP CC
;do next line in block
5BCF
GTNX
010001
LD BCOlOO
;256 byte offset to next line
5BD2
09
ADD HL,BC
; update address pointer
5BD3
7E
LD A, (HL)
;get the pixel byte
5BD4
A2
AND A,D
;test designated pixel
5BD5
C9
RET
; return with Z bit status
5BD6
OTPR
F5
PUSH AF
;save registers
5BD7
C5
PUSH BC
5BD8
4F
LD C,A
; save the char, in C reg.
5BD9
uu
CD0920
CALL 2 00 9
;test for BREAK
5BDC
3802
JR C,VV
;jump if no BREAK
5BDE
CF
RST 08
; return with BREAK message
5BDF
14
DEFB
5BE0
vv.
DB7F
IN A, (7F)
;read printer port
5BE2
CB67
BIT 4, A
;test BUSY bit
5BE4
20F3
JR NZ , UU
; loop back if BUSY
5BE6
79
LD A , C
•get character back
5BE7
D37F
OUT (7F) ,A
;send it to printer
5BE9
DB7F
IN A, (7F)
? reset AERCO port
5BEB
CI
POP BC
•restore registers
5BEC
Fl
POP AF
5BED
C9
RET
• done
5BEE
SETV:
03
DEFB
•3 chars, to be output
5BEF
IB
DEFB
•ESC char.
5BF0
2B
DEFB
•"+"set graphics mode
5BF1
30
DEFB
to 180 dots/inch vertical
5BF2
FF
DEFB
•spare bytes
5BF3
FF
DEFB
5BF4
OTFM :
05
DEFB
5 chars, to be output
5BF5
IB
DEFB
ESC char.
5BF6
2 A
DEFB
"*"set for 180 dots/inch horiz.
5BF7
27
DEFB
768 vert. columns per line
5BF8
00
DEFB
lo byte
5BF9
03
DEFB
hi byte
5BFA
FF
DEFB
spare bytes
5BFB
FF
DEFB
5BFC
REST :
0 2
DEFB
2 chars, to be output
5BFD
IB
DEFB
ESC char.
5BFE
32
DEFB
restore normal vert, mode
5BFF
FF
DEFB
spare byte
1 3
TS2068 TAPE TO DISK PROJECTS AND AVAILABLILITY
Over the years those of us who have steadfastly used our
TS2068S have contended with the fact that many of our old
favorite programs that came on tape only were never upgraded to
disk for us to use on our favorite disk interface. We have had
some great disk drive interfaces over the years, ranging from
Aerco, Oliger, Larken, TOS and the Millenia K to name a few.
Quite a few of us got to where we could convert most programs to
disk. Some have preferred to use canned disk programs and never
learned to do this conversion, and never had the time or
inclination to type in the changes to make these changes when
they were given a listing- I hope to be able to remedy this for
you.
Here at UPDATE! Magazine we have over the years received
the benefit of many of our best TS2068 programmers, and with
their kind indulgence, I would like to pass on some of these
software conversions to the rest of you. I have practically
given up the use of audio tape myself years ago (it was great
when that was all I had, but that was then!) and acguired two
Oliger, two Larken and a couple of Aerco interfaces to use with
my TS2068S. I want to do this in a legal manner. The reason I
say this is that some folks have been handing out pirated copies
of some software. This may not seem like a big deal on an orphan
computer, but some of these companies still object. An example
is TASWORD 2; it is still for sale by TASMAN (though not easy to
get a legal copy of here in the Americas) and they still object
to it being passed around for free. In this issue we have shown
you the excellent updates and upgrades to this program by Larry
Crawford. You may find these changes available in your local
user group or club library, but for those who do not have or use
this source I am making the following offers to you on this and
a few other items of software.
For those who want to upgrade their tape copies of
TASWORD 2, or PRINT FACTORY to either Larken or Oliger disk, or
want a disk copy of 'bitim.Bl' for use on your 24-pin printer or
Bubble jet, send me $5 per program to cover disks, postage and
packing materials and copy charge, and I will send them to you
either First Class or Priority Mail. I have too many calls upon
my time and finances to offer to do this for free, but I feel
this is a fair offer. If you ordered, paid for, but never
received Print Factory, phone or %n:ite me and I will try to help
you out in that area also.
I hope this will be of help to you. To the best of my
knowledge, the upgrades for MSCRIPT are still being offered by
Jack Dohaney. Has anyone heard otherwise? If anyone else has
tape to disk conversions done for other TS2068 programs that
they would like to see made available to the public for legal
ownership, please contact me. As for those ordering from me,
since most of us do not have our receipts from years ago to
prove we purchased these programs, I will rely upon your
honesty. If you want to make a legal purchase of some of these
older programs, then contact either RMG or Mechanical Affinity.
1 4
A GUIDE TO USING "ctsis.BI", THE CUSTOMIZER, AND THE PRINTER
Larry Crawford / 357 Reynolds Rd / London Ont / Canada / N6K 2P8
(519) 657-9119 Public Domain 10 Oct 93
SOME FEATURES OF THIS EXTENSIVELY REVISED VERSION OF TASWORD 2:
1. Can be used with an Oliger system.
2. Can be used with a LARKEN system,
3. Can be used by a combined 01 i ger/LARKEN system.
4. Color coded screen prompts indicate which system is active.
5. Files can be loaded from one system and saved to the other.
6. When a text file is to be Loaded, Added, or Saved, a catalog
of all text files on the active drive is displayed.
7. One or 2 keystrokes can then perform the desired operation.
8. The Print option has its own menu which has 12 options. Mew
ones are:
a) change size of top margin
b) change size of bottom margin
c) pause at end of each page for manual positioning of
the paper or automatic positioning
d) number of copies to be printed
e) print number of page at top. or bottom or not
f) print a header or footer message or not.
g) select Oliger or LARKEN DOS
9. A companion Customizing program allows you to define the
graphics, printer, and interface codes as in the original
Tasword. Additional Customizing features have been added:
a) edit the help pages (fast)
b) set color of text file paper, ink, & left margin
c) set the default values for the printout:
i) size of the top margin
ii) size of the bottom margin
iii) size of the left margin
iv) the length of the form in lines
v) clear text file or not when ctas.BI is loaded
vi ) pause or not at end of page
vi i ) select fanfold or cut sheet paper operation
10. Compress or uncompress a text file,
11. Save the whole Tasword package to another drive except for
the booting program which must be handled separately.
12. Change from one DOS to the other.
13. Change from disk to tape operation.
14. The 1st 6 bytes of the text file can be used to define a
default file name. This can make the saving of a text file
a two-keystroke operation.
15. The whole 1st line can be used for header or footer data.
16. The main menu displays the following extra information:
a) name of the file in the text buffer
b) length of file in bytes
c) length of file in lines
d) length of file in words
e) number of tracks needed to save the file
f) active drive number (flashing)
17. The active drive can be changed by simply pressing a # key.
Drive #4 is supported if in LARKEN mode.
18. The drive used to load the program is defined as the source
1 5
drive. The same number is used to define the default # of
the data (destination) drive. When some of the options are
chosen, the source drive is activated so that the
appropriate program or codes can be loaded.
19. The data drive, as selected by the main menu, is used to
load or save text files.
20. Whenever the program is loading or saving anything, a
message is displayed to inform you of what's going on.
21. A single beep sounds when a keyboard input is expected.
22. A double beep sounds if an invalid value has been typed in.
Control then goes back to the appropriate menu.
NOTE: If you have broken into the program, <GOTO V> will get you
back to the main menu. If you have broken into the printing
process, type <RANDOMIZE USR 59806> before <GOTO v> .
**********)|C5ic*******>|c****5|<**********>|c5f:***>J:***
** MAIN MENU OPTIONS **
J: LOAD text file: The text file is cleared out and a catalog of
the Tasword text files on the disk in the active drive is
displayed. Each file name is identified with a letter. The file
is selected by this identifier.
You can escape to the main menu by pressing the <STOP> key.
If more than 26 files are on the disk, you will be prompted to
press the space bar to scroll to the next page or the UP cursor
(key 7) to return to page 1 of the catalog.
A: ADD text file: The same comments apply as for the LOAD option
except that the file buffer is not cleared and the desired file
is added to the end of the existing text file rather than being
loaded into an empty file buffer.
S: SAVE text file: When the SAVE option is selected, the same
catalog of all text files is displayed as in the load option but
without the identifying letter. This will help to avoid wiping
out an existing file by saving a new one with the same name. You
will be prompted to press <ENTER> to continue with the save.
After this is done, the default name is displayed and is the
name under which the file will be saved unless changed from the
keyboard .
P: PRINT text file: The ten options and their default values are
then displayed on the screen as is the type of paper feed. You
are prompted to press a letter key to change any of the default
values. Otherwise, hit the <P> key to LPRINT with the displayed
parameters. If the printer is not on line at this time, a prompt
will remind you to turn it on. The <M> key will escape to the
main menu.
If page 1 i s to be printed, you will be prompted to set the
paper to the top of the page. This will be the position of the
first line of print and will be the line immediately following
the top margin spacing that you want. This is critical since all
vertical spacing is determined from this position. Most printers
automatically feed to line 5 from the top, giving a 5/8" top
margin which is usually acceptable.
If the Page Pause option is active, set the first page as above
1 6
but set all subsequent pages to print on the 3rd line from the
perf orat i on .
If the page pause feature is not active and the top margin on
subsequent pages is incorrect, change the value of the upper
limit of the loop counter, 'i', in line 8050 from d [4] to an
appropriate value. (I have a bubble jet printer now and have no
way of checking the operation with fanfold paper)
If you have just printed a file and attempt another print, you
may get an "OUT OF MEMORY" error message. If so, simply <CLEAR>
and <RUN>.
**THE PRINTER OPTIONS**
A: Start line: Always initialized to 1. Can be changed if the
<A> key is pressed. Automatically changed to line 2 if a header
or footer is to be printed and printing is to begin with the
f i rst 1 i ne of text .
B: End line: Always initialized to the last one in the file and
identified as "last". Can be changed if the <B> key is pressed.
If it has been changed and you want to revert to "last", press
<B> again and then <ENTER>.
C: Line spacing: Always intialized to one. Can be changed if the
<C> key is pressed.
D: Left margin: The permanent default value can be set with the
<B> option of the Customizer program. A new temporary value can
be entered if the <D> key is pressed.
E: Top margin. The permanent default value can be set with the
<A> option of the Customizer program. A new temporary value can
be entered if the <E> key is pressed.
F: Btm margin: The default value is displayed. This can be set
with the <B> option of the Customizer. A new temporary value can
be entered if the <F> key is pressed.
The maximum number of lines/page is displayed on the screen.
G: Page Pause?: The default status is displayed. This can be set
with the <M> option of the Customizer. The "YES" status will
require the operator to position the paper manually before the
next sheet is printed. Toggled with key <G> .
H: # of copies: Always initialized to one. Can be changed if the
<H> key is pressed.
I: Number pages?: Default value is "NO". When key <I> is pressed
repeatedly, the mode cycles through "YES" (top), "YES" (btm),
and "NO".
J: Header/Footer?: Default value is "NO". If the <J> key is
pressed repeatedly, cycles through "hdr", "ftr", and "NO".
If active, the first line of the text file is used to hold the
header or footer message and the start line is set to 2 if
1 7
printing is to start at the first line.
-Main Menu options continued-
Y: RETURN to text file: Just what it says.
T: SAVE BASIC only: Allows you to save the version that
you have created for your own needs without disturbing the
codes .
W: Save Whole Tasword package: THIS OPTION CAN BE USED ONLY IF
THE TWO DISKS ARE FORMATTED FOR THE SAME DOS.
Clears out the text file and saves "ctas.BI" to the current
disk. Loads the Customizer program which loads the "taspak.CI"
CODE from the source drive and saves it, "etas. CI" CODE, and
"custtw.BI" to the destination drive.
Reloads "ctas.BI" from the source drive.
At this point, if you want to put the LARKEN AUTOSTART on the
new disk, reboot the source drive and break in when the prompt
to switch off the Oliger board appears. Then GOTO 9999. You will
be prompted to enter the destination drive number then to press
the <D> key to save the AUTOSTART.
With Oliger disks, boot the source drive with <LOAD> and break
in before "ctas.BI" starts to load. The timing here is kind of
tricky. When the loader program on track 0 is successfully
captured, select the destination drive and then <SAVE /0>
C: Customize Gr/Prnt r/Hel p pages: Loads the Customizer,
"cust.BI", from the source drive and its menu displayed:
**CUSTOMIZER OPTIONS**
G: Define Graphic codes: As in Tasword 2.
E: EDIT help pages: You will be prompted to select the Help Page
to be amended. Almost instantly, the selected Help page will be
displayed, ready to be amended.
Upon returning to the Customizer menu with the <STOP> key, a
prompt will inform you that the amended page code has been put
into high memory and that you should choose the <S> option after
all other desired customizing changes have been made.
P: Define Printer/interface codes : As i n Tasword 2.
S: SAVE new code and reload Taswrd: Saves "etas. CI" CODE to the
source drive and reloads "ctas.BI" from it.
T: Save this customizing program: Saves "custtw.BI" to the
active drive.
Y: Return to Tasword: Reloads "ctas.BI" without saving the
codes .
1 8
C: Change Colour of paper and ink: Permits the colours used in
the text file display to be changed. The formula for calculating
the colour codes is displayed on the screen.
0: OLIGER/LARKEN : Toggles between the two DOSes . This will
permit the user to save an amended version of the Customizer to
either type of disk.
Z: Fanfold paper?: Toggles between the two types of paper.
PRINTOUT DEFAULT VALUES
A: Top margin. When chosen, the current default value is
displayed flashing. It can be changed by entering a new value or
retained by pressing <ENTER>.
B: Bottom margin: When chosen, the current default value is
displayed flashing. It can be changed by entering a new value or
retained by pressing <ENTER>.
L: Left margin: When chosen, the current default value is
displayed flashing. It can be changed by entering a new value or
retained by pressing <ENTER>.
F: Form length in ": When chosen, the current default value is
displayed flashing. It can be changed by entering a new value or
retained by pressing <ENTER>. The standard value for an 11" page
is 66 1 i nes .
X: Clear text file on Load?: The current status is displayed. It
can be toggled between "YES" and "NO" with the <X> key.
M: Page Pause?: The current status is displayed. It can be
toggled between "YES" and "NO" with the <M> key. The "NO" status
requires you position the paper manually at the top of the next
page. It is needed if you are using multi-copy forms.
NOTE: If you have broken into the program, <RUN> will get you
back to the customizer menu.
-Main Menu options continued-
K: Compress/uncomp text file: You are given the option of saving
the current text file with the <S> key (in case you have just
created it and haven't saved it). Any other key will activate
the "CAT text files" function.
After the name of the file has been found by pressing the file
identifier letter key, the Customizer is loaded as is the
"taspak.CI" code. A menu is displayed offering the two options.
After the choice has been made and the compression or
uncompressi on is complete, the name of the old file is displayed
and you are prompted to enter a name for the new file. When this
is done, the file is saved to the active drive and both
"etas. CI" and "etas. 81" are reloaded from the source drive with
1 9
the new file in place.
0: OLIGER/LARKEN : Toggles between the two systems. This allows
you to load a text file fron one disk type and save it to the
other. In fact, all options except <W> can be used.
If OLIGER is active, all screen prompts will be in green. If
LARKEN is active, they will be red.
A prompt will remind you to change drives after changing DOS.
D: Disk or tape LOAD/SAVE of Tasword file: This option is
strictly for the handling of Tasword text files. It toggles
between the two storage devices. The active device is highlight-
ed on the main menu screen.
MIRACLE IN ff EXPORT, 2ND TIME AROUND
On Saturday^ May 14th of 1994, IQLR (International QL Report) will
be sponsoring the second annual North American QL/QDOS get together.
It will once again be held at the Salvation Army Building on Memorial
Boulevard in Newport, Rhode Island to the best of our present
knowledge. The vast majority of those who attended last year really
enjoyed this show.
UPDATE! Magazine and Mechanical Affinity were both there last year
and will be there for this event! We here at the magazine hope to see
all of our QL users and readers at this years event. There is more
than just hype in the last sentence, because we happen to really like
the people we have as subscribers!, and enjoy meeting them at computer
shows. The only complaint we had about the show last year was that
there were too few hours and we here in the Midwest prefer to relax
and take our time. From what Bob Dyl has told me and published in
IQLR, we will have a longer show this year. Come and see old friends
and meet new QL users. This may be your best way to see what is new
for the QL.
Vendors who have said they will be there, so far, are: IQLR,
Mechanical Affinity, Miracle Systems Ltd, UPDATE! MAGAZINE. QBOX-USA
will be there demoing their QL supported and QL operated BBS, Bob
Gilder of LIST will be there demoing the CL Systems "Real Time
Digitizer". I have spoken with Dilwyn Jones of Dilwyn Jones Computing
and he has pat in to take off time from his regular job at the BBC.
Freddy Vachha of Digital Precision is trying to make the time to
attend this years show. We have also been informed that W.N.
Richardson & Co. will be there.
For more information about vendor or user group tables, or to get
your tickets early to attend (save a few bucks), call Bob Dyl at (USA)
401-849 3805 for either phone or FAX. I want to see all of you there.
Before going last year, Carol and I had never thought of Rhode Island
as a vacation spot, but we sure changed our minds. If you love sea
food and jazz, this is a great spot to be, and not far from Cape Cod
and the islands.
SOME COMMENTS ON "bitim.BI", A UTILITY TO CREATE AND PRINT 1
OR 22 ONE-LINE SCREEN FILES TO A 24-PIN OR BUBBLE JET PRINTER
Larry Crawford / 357 Reynolds Rd / London Ont / Canada / N6K 2P8
(519) 657-9119 Public Domain 10 Oct 93
For background information on 24-pin operation see the Tasword
file "Ibibkg.CT" or choose option [C] of the disk menu.
When loaded, a prompt will ask you to enter the name of the
screen file. This demo disk contains "mag. CI" and "alb. CI".
It will probably be prudent to have only one file on a disk with
its name on the label so that you will know what to type in at
this poi nt .
Since the screen name must be in variable ' s$ ' , never RUN the
program after you have broken into it. Use <G0 TO 1> instead.
Should you inadvertently use <RUN> then GO TO <8888> after the
error message and reenter the screen file name.
After you have entered the screen name, a menu will appear,
offering a choice of 13 options:
BIT-IMAGE MENU
A:
CREATE 1 FILE FROM SCREEN
B:
CREATE 22 FILES FROM SCREEN
C:
PRINT
1 FILE IN SINGLE DENSITY
D:
PRINT
1 IN DOUBLE DENSITY
E:
PRINT
1 IN TRIPLE DENSITY
F:
PRINT
1 IN HEX DENSITY
G:
PRINT
22 FILES IN SINGLE DENSITY
H:
PRINT
22 IN DOUBLE DENSITY
I :
PRINT
22 IN TRIPLE DENSITY
J:
PRINT
22 IN HEX DENSITY
K:
PRINT
1 FILE TO 2040 PRINTER
L:
PIRNT
22 FILES TO 2040
M:
DISK MENU
Six of these deal with one line file: you may create a file
whose name will be the first 3 characters of the screen file
name pi us "1 . CI " .
Yuu may print it to the large printer in one of four densities
or the 2040 printer. The 2040 does not produce good quality
printouts, of course, nor are circles round. It does provide a
quick and easy way of checking the contents of the line file,
especilly to see if it is inverse.
The others deal with a full screen: you may create 22 line files
2 \
whose names will be first 3 characters of the sceen file name
plus "n.CI" where n is the number of the line file. A message at
the bottom of the screen inform you which file is being created
or saved. The process of dealing with all 22 files is about 6
mi nutes .
You may print them to a large printer or the 2068. All 22 files
will load and print in about 45 seconds.
When any of these options is selected, you will be prompted to
choose between a normal or inverse file. Remember that a normal
screen image is actually a negative so that if you want to print
out a positive bit image copy, you will probably want to choose
the inverse option.
The final option is to return to the disk menu.
SOME COMMENTS ON "bitim.BI"
LINE 10: Defines the BEEP subroutine 'bp'. Assigns to 'h$' the
first three characters of ' s$ ' , the name of the screen file plus
Sets the BORDER, PAPER, and INK colors. Sets the keyboard
input to lower case.
LINE 20: The menu.
LINE 30: Inputs and error traps the menu choice.
LINE 35: Reboots the AUTOSTART if the <M> option was selected.
LINE 40: Prompts for an INVERSE? creation or printing of the
file(s).
LINE 60: Sets the number of line files to be created. Transfers
control to line 140 to create the file(s).
LINE 70: If the large printer is to be used, loads the code
routine. Determines the number of lines to be handled.
LINE 80: Waits for the printer to be put on line before attempt-
ing to print. NOTE: the test value used here is 236. Change it
if necessary to conform to your printer interface.
LINE 90: Defines the address that the code routine uses to
determine the number of times a bit image DATA byte is to be
sent to the printer (LET den=24394) . Sets the left margin and
Line Feed spacing.
LINES 100 to 140: Set the parameters for the density of the
large printer bit image printout.
LINE 150: Determines the number of lines to be sent to the 2040
printer and jumps to 5000 to do so.
LINE 160: Displays the screen file if all 22 line files are to
be printed. This is not needed but lets the user know what
22
output to expect.
LINE 170: Sets up a loop to send 'nf lines to the printer. Sets
the address for the start of each line's data to 26296 (5B00).
LINE 180: Defines the name of the line file and loads it into
the 2068 printer buffer.
LINE 190: Sends codes to the printer to tell it how many bytes
of bit image data to expect.
LINE 200: Calls the code routine at 24331 to send the data to
the printer (see Tasword file "bidis.CT" for a disassembly of
this routine). Terminates the loop. Returns to menu after all
files have been sent.
LINES 500 to 530: Subroutine to send codes to the printer. NOTE:
the test value of 236 in line 520 may need to be changed.
LINE 4000: The start of the "create-a-f i 1 e" routine. This first
line loads the screen file, initializes the line file number to
zero, and defines the address of the first data byte as the
beginning of the printer buffer.
LINE 4005: Sets up an 's' loop to look after the 3 sections of
the upper screen. Sets up an "1" loop to take care of the 8
print lines in each of the top two sections and the 6 lines in
the bottom one. Increments the line file counter and tests it to
see if all the desired lines have been created. If so, control
passes back to the menu.
LINE 4010: Assigns to ' f $ ' the line file name. This will be the
first three characters of the screen file name plus the line
number plus " . CI " .
Initializes the pixel column counter, 'k', to -1. This will be
incremented 256 times for each of the print lines.
Sets up the scan line loop, 'i', which points to the first to
last pixel scan lines in steps of 256.
Sets up the print column loop, 'j', to point to each of the 32
columns in steps of one.
Assigns to the data byte, 'b', the contents of the screen file
pointed to by 'i' and 'j'.
LINE 4015: If an inverse file was requested, address 26671 will
contain a value of 1 and the data byte will be subtracted from
255 to change all its zeros to ones and vice versa.
LINE 4020: Pokes the byte into the printer buffer and repeats
the process for the next column and scan line.
Saves the resulting 256 bytes.
LINE 4030: Repeats for each of the 8 print lines in the 3 thirds
of the screen except for the last one: line 4005 returns to the
menu after the sixth print line of the bottom third.
LINES 5000 to 5030: The " send- to-2040 " subroutine. Lprints the
required number of bit image files after converting them to
23
inverse if requested.
LINE 7000: The BEEP subroutine.
LINE 8888: The entry point when the program is first loaded.
Prompts for the name of the screen file to be used, then passes
control to line 1 to initialize variables and call up the menu.
LINE 9999: Saves the program to run at line 8888.
QZX
< )
The Journal Covering Amateur Radio and Suiclair Computers
ZX80. Micro- Ace. ZX81, TSlOOO, 1500. and 2068, QL: Z88
Alex. F Burr, K5XY, Publisher
2025 O'Donnell Drive
Las Cruces, NM 88001
1 993 July 7
QZX is a monthly newsletter piiblishnig articles of a technical nature of interest to Radio
Amateurs and other technically oriented people from all over the United States and some
overseas countries. The articles relate to any of the Sinclair computers , The US subscription
rate is $15.00 per year. For a sample issue please send $L00 (postpaid).
BACK ISSUES OF UPDATE SPECIAL OFFER
In order to reduce our present inventory of back issues of UPDATE!
Magazine we are offering the following through the end of March, 1994.
The normal price for a four year subscription is $18.00. Despite the
rising cost of mailing, paper, photocopy toner, etc., we have kept the
price the same for going on 4 years. Prior to our taking over UPDATE!,
the magazine was guite ably published by Bill Jones for three years.
This gives us guite a treasure trove of back issues to offer to those
who have missed out on them. Here is the deal: We are able to offer
back issues on all but two of the early ones; this means (not counting
this issue year which is still covered under current subscriptions and
prices) we can offer complete sets of 22 issues and at the great price
of only $70. This would (normally under our usual back issue price of
$16 for four issues) have been $88. You get to save $18, and we get
some more room around the house! For those not guite so adventuresome
who only want four back issues at a time, we are offering to do so for
only $14, but only through the end of March 1994. When an issue is
gone, we will not be making any more copies of it, so I urge you to
take advantage of this offer soon.
24
Modems
^ (Me(fMa£afe
CATUG
Computers use
binary codes of "ON"
bits (which have a
value of 1) and
"OFF" bits (which
have a value of 0) for
sending infonnation
to components across
short distances to
serial peripherals such
as serial printers.
Computers voltages from 5 to 15 volts for
an "on" bit and from -5 to -1 5 volts for an "off'
bit. But to send information over the telephone
lines, computers need to modulate this digital in-
: formation into analog format the telephones use,
i in other words convert it into variable pitch
I sound instead of beeps, then demodulate it at the
I other end so that the receiving computer can un-
I derstand it. Hence, the device tiiat does this takes
its name from Modulate DEModulate =>
MODEM.
Modems communicate one bit at a time
using serial transfer. The standard serial transfer
uses 9 wires of which only two wires actually
transfer data, the rest manage the transfer proc-
ess and provide signal ground, to prevent statics
and interference.
Your communication software's dial
command transmits a signal ATDT (ATtention:
Dial Tone) followed by a phone number to your
modem, which goes oiT-hook — picks-up the
phone so to speak — and dials out using DTMF
(tone) as opposed to pulse PT dialing in this case.
When the modem on the other end receives a
I ring, it sends a signal (Rl) to the software telling
it to issue a command to pick up the phone.
I When the remote modem picks up the
I phone, your modem sends out a hailing tone, and
the remote modem responds with a higher pitch
tone, llie modems then exchange infonnation
(cackle) about how to transfer data in a hand-
shake, rate (BAUD, bits per second), type of
transfer (ASCII, Xmodem etc.) and settings
(8N1) to determine the size of data packets the
systems will exchange. Hence the word
PROTOCOL.
Once the communications are established
the modems send a Data Carrier Detect signal
(squeal), which continues until the modems
either hang up or gets cut-oflf.
A data packet is a group of bits that consti-
tutes a single character. The 8 in the setting 8N1
refers to the number of data bits in the packet.
Each packet is enclosed by a START bit and a
STOP bit that tell the receiving modem
where the packet begins and ends. The 1
refers to the number of stop bits in the packet.
Data packets sometimes contain a special
PARITY bit, which the modem use for basic
error checking. Parity can be set to ODD, EVEN
or NONE. When parity is even, the transmitting
system sums the Os and Is and gives the parity
bit a value of 1 or 0, whichever makes the total
an even number (check-sum?). If the receiving
modem gets a different result, it assumes that the
transmitted data is incorrect and requests a re-
transmit from the other modem.
When a communications session is over,
each of the computers software sends an ATH
(ATtention: Hang) conunand to its modem,
instructing it toon-hook — hang-up. Or when
the other modem loses the data signal carrier
(squeal) it also hangs up.
DTR c>
DCD o
DSR o
ATA «
ATO <=>
Data Terminal Ready
Data Carrier Detect
Data Set Ready
ATtention: Answer
ATtention: (go) Online
QBOX-USA - Utica, MI, USA
John Impellizzeri and Don Walterman have a QBox BBS set up in the US. This
BBS is carrying four QL related echomail message areas from the European
BBS's that exchange mail via the Fidonet. In these echomail areas, a North
American QL user can exchange messages with users in Europe. TF Services is
the host BBS for the echomail . The message areas are: International QL,
Minerva, Quanta and QBox-Sysop.
There are also local message areas along with file areas that will have
public domain programs available for download. Uploads are gladly accepted
too! The BBS is running the QBox software from Jan Bredenbeek on a QL
computer. There is more info online about the hard and software used on the
system. Please give it a try!
313 254 9878
24 hours, up to 2400 baud
t ****** t*******^****t**t***tt*****
COMPUTER CLASSICS
RT 1, BOX 117
CABOOL, MO 65689
Repair Service for America's
Favorite Home Computers
and their accessories
ADAM ATARI COMMODORE
IBM OSBORNE SINCLAIR
TIMEX TI TRS~80
BUY - SELL - TRADE ~ UPGRADE
Write for prices
SASE appreciated
Ph. (417) 469 - 4571
**********************************
******************************* ******i
COMPUTER CLASSICS
FOR SALE ***
IBM XT COMPUTER $200 +shipping
Includes 10 MEG hard drive, 640K
RAM, 360K floppy, serial port and
parallel port, monochrome monitor,
and keyboard.
IBM 286 COMPUTER $350 +shipping
Includes 20 MEG hard drive, 1MB
RAM, 1.2MB ft 1.44MB floppies,
serial ft parallel ports, keyboard,
and monochrome monitor.
QUAD DENSITY 5 1/4 in. (720K)
half height floppy drives
$25 each or 10 for $150
IBM HARD DRIVES, CONTROLLERS,
and RGB COLOR MONITORS
Write for prices
**************************************
Tony Bllzzar-cJ
512 E Cour-t, Welsen, Idci. 33672
My son, Ron, tells me that the QL
supporting journals need articles on QL
use and that, since I'm a heavy user, I
should write some. Okay. But most of
you are computer buffs; I*m not. The
QL is the only computer I've ever used,
excepting a couple hours playing with a
i Timex-Sinclair. When my sons advised
I me to get one of those "super-buy" QL
computers I asked, "What do I need
with a computer?" With a little
argument they convinced me that if I
only used the word-processor it beat
my WD-40-soaked IBM Selectric every
way imaginable. Turns out they were
right. That is, after I nearly beat the
thing to death learning Quill (old dog,
new tricks situation). And I went
through the same trauma with Text87.
(This is a Text87 doc.)
Materially, my mind works on
mechanical and electrical logic; not
computer logic. Therefore, after I read
a new program's manual I call Ron to
find out what it means. He's developed
into quite a translator.
My present hardware amounts to a
Magnavox RGB monitor, 896K Trump
Card, dual 5 1/4 Mitsubishi discs from
Sharp, a Seikosha SP 1200-AS 9 pin and
an Epson LQ-500 24 pin printer and a
back-up QL with a monocrome monitor.
The Seikosha just prints mailing labels
these days; the 24-pin doing the heavy
work. I picked up a cheap Tandy A/B
switch to put between them and made
up a cable from switch to serial 1.
Both lights of the *4#!90 disk drivers
come on every time a floppy is called,
always have; Stuber wasn't very
anxious to help fix it and it still drives
me nuts. Otherwise, I'm happy. (Ron
has about talked me into networking
the backup QL; might be fun.)
Software? More than I use. Taught
myself Quill and Archive out of the
i originals. Ron bought me Taskmaster;
so far it's mastered me. (But I hope to
write its "screen saver" into every boot
I have!) Bought Stuber's early version
of Xchange and have had to learn to
use it for its 'mail-merge feature, which
use I will describe herein. Also have
Bill Cable's Archive enhancements and
like what I've used very much but for
the awfully slow screen changes.
Following is one layman's use of the
QL:
As mentioned, I was interested in a
good typewriter - Quill. It soon made
the old way comparable to chiselling
stone. And, until someone writes a
mail-merge for Text87, I'll continue to
use it for special purposes. Being
politically oriented, if I'd had Quill 25
years ago, a lot more politicians would
have had to make a lot more excuses
concerning their actions.
Being, at the time of my QL
purchase, maintenance manager of a
good-sized vending machine business, I
soon saw the advantage of a machine
data- base for the whole operation and
began spending my evenings typing in
data for every machine in the business.
My crew groaned when I first exposed
them to the print-outs, but soon they
were looking for updates of equipment
on locations to help their preparations
for repairs, etc.
Next, two of my sons turned their
correspondence into a magazine and I
got elected to keep the address data-
base - now up to about 1400 names.
Have also developed my own six-
page or so monthly (?) mail-out sheet
(Text87 produced) and regularly update
its address data-base.
Lastly, I run an irrigation- ditch
lateral in our part of town 7 months of
the year and my wife has now become
secretary-treasurer. A tax bill must be
sent to each address on the ditch-line
each year. In the past the secretary
had triplicate legal forms printed,
crash-numbered and bound at
considerable cost. Then she had to
laboriously hand-enter all the
information for each address.
Last year I used Xchange's mail-
merge feature and set up the whole bill
on an 8 1/2 X 11 sheet in Quill; then
27
created an Archive data- base to hold
each lot's detailed info. This entailed
looking back through years of dusty
records and making trips to the county
assessor's office to find the answers to
riddles caused mainly by individualistic
penmanship.
To create a form including all the
necessary legalisms on one sheet really
challenged Quill's versatility. (Sample^
are provided if the publisher has
display spax:e. ) I could never have
managed it without Quill's ability to use
custom translates in the printer_dat.
Happily, I had made drivers beforehand
using translate codes (as shown by
Mike de Sosa in an article from an old
Time Designs) to take advantage of the
LQ-500's founts.
When it came time to merge the data
into the form most everything had to
be jockeyed around some more.
Through frustrating trial and error I
discovered that the Xchange mail-merge
only worked so many lines down the
page. Because the teuc-payer tear-off
payment stubs had to be at the bottom
of the sheet and had to carry the same
number as the main bill, this meant that
I couldn't merge bill numbers I had set
up in the data- base. Finally I used a
manual numbering machine. However,
Ron recently brought his new public
domain, updated, Xchange and we
discovered (just before my QL's original
membrane, as well as that of the back-
up, decided to quit) that that problem
has been corrected. This year's bills
went out with the numbering merged
perfectly.
To have everything align properly
on the merged sheet I discovered that I
had to allot the proper number of
sp£U3es on the doc (even though it
pushed things out of place in the Quill
template) and then be sure to fill every
space of every field in the database.
That meant a lot of speuies run into the
31 fields on the Archive screen I had
created.
During the course of all this
research and set-up I discovered that
through the passage of time, selling off
of parcels, etc., the ditch tax had lost
much of its equity. So before the 1993
billing this cantankerous old dog
attacked Abacus hoping to equalize the
tax"- base per square foot. But after
learning its basics, I found it easier to
use a calculator. Seems that, given
length & width, Abaujus could figure
square footage of each lot, but I know
zilch about math formulas and
programing. Maybe someone can explain
to me how to set up Abacus to do that
job in the future.
Last year I printed the bills on
continuous feed paper. This time I
used a cut-sheet feeder. One seems to
work about as well as the other
edthough the cut-sheet eliminates the
extra time needed to tear eill the
perforations.
By the way, a local programer wrote
a special PC program for another ditch-
lateral company in town which went on
computer a year before us. They still
have a glitchy situation with botched
bills while, except for the manual
numbering - now corrected - our bills
printed out without a hitch first time
out.
Don't know if this is what QL
publications need, but this is how I use
my QL. As for the technicalities of how
some of the objectives are accomplished
- I tend to forget the details until I
have to do it again. Then re-reading
the manual usually refreshes my
memory.
Again, I'm not a computer buff,
never ran a PC, but I know a useful
tool when I see it operate. Now when
the grandkids play the simple Quanta
library games on my QL, I get nervous.
And when the membrane gave up I
wasn't sure how life would progress.
Luckily, Frank Davis of Mechanical
Affinity had me fixed up with new-
production membranes in just two days.
Real service!
Hey, when the QL "died" I was too
busy using mine to attend the funeraL
- end -
26
MIDDLE WEISER IRRIGATION LATERAL DISTRICT
NOTICE OF TAXES
No, 102
TAX LEVY FOR 1993
Weiser, Idaho,
,1993
Myers Enterprises
537 E Court
Weiser, ID 83672
c/o J. Myers
Please take notice that your taxes for the
year 1993 on the below described property
amount to the sum of
Fifty-seven and 28/100- DOLLARS $ 57.28
DESCRIPTION OF LANDS
AMOUNT AND DISTRIBUTION
Hanthorn Add'n.
158' X 190' X 100' 22910 sq'
Blk! Apportionment
Total Tax
1/2 Pd. 1993
Balance Due
Penalty
Advertising
Total Paid :
THE FOLLOWING TAXES ARE DELIQUENT
ON ABOVE PROPERTY
IMPORTANT ■■ Notice
are due and payable at the (
of Barbara Blizzard in Weis(
liquent at 6:00 o'clock p.»
by given that the assessments above indicated
office of the District, same being the home
ser, Idaho. Said assessment will becoM de-
the third Monday of Deceaber, 1993,
pro\
date
'ided that if one-half of the same shall be paid on or before said
i, the remainder may run without interest but will becone delinquent
lot paid on or before 6:00 o'clock p.m. on the third Monday of June,
fill be added to all delinquent as se se-
en (10) percent per annia fro« January
THESK AMOUNTS ASS SET BY LAW.
BARBARA BLIZZARD, Secretary
512 East Court. Weiser. Idaho 83672
1994. A penalty of two percent
■enta and an interest charge of
Ist will accrue until settleaen
Make remittance payable to:
If the owner's name is not
please indicate below:
Present Owner_
MEMO:
Your cancelled check is your receipt
FOR PROPER CREDIT CUT AND RETURN THIS PORTION WITH PAYMENT; FOR PROPER CREDIT CUT AND RETURN THIS PORTION HUH PAYMENT
No. 102
FULL OR FINAL PAYMENT
Barbara Blizzard, Secretary
512 East Court, Weiser, Idaho
Enclosed find $_
in Final and Full
payment of taxes levied for the year 1993 on
the property described in the Tax Notice bear-
ing the same number and year as this stub and
from which this stub has been detached.
Respect fully,
No. 102
FIRST INSTALLMENT
Barbara Blizzard, Secretary
512 East Court, Weiser, Idaho
Enclosed find $ in payment of
the First Installment of taxes levied for the
year 1993 on the property described in the
Tax Notice bearing the same number and year
as this stub and from which this stub has
been detached. Respectfully,
A^eCHAHICAL
AFFIHITV
515 eAST i^AIH ST. QK 5251 VILTOW VOOP CT
V&W m 4^970 IMPIAMA1>QLI6 IM ^^254
517 475 a031 517 291 6002
FKAWK PAVIS 1>AUL HQl./i^GKeM
Bringing the very best to you in SINCLAIR software and
iiardware from around the world. We want to provide
service to you tlie customer. Need something, give us a
call. Make all checks or money orders out to either Frank
Davis or Paul Holmgren . Thanks? Payment in LIS$.
SPECIALS GOOD TILL CURRENT SUPPLY EXHAUSTED
TRUMP CARDS: 896*K RAM, Tool Kit 2, disk interface lor QL. These are used, but in good
condition and are being offered for only $100 till current supply Is sold.
512IC MIRACLE tXFANDER RAM CARDS:for those with a disk interface and no extra
memory, or an unexpanded QL and would like to increase the available memory in
order to use larger programs, then these are excellent, and are available for only $45.
SINCLAIR QL PRINTERS: in QL black, 9 pin dot matrix printers made to work specially
with the QL. Tractor feed, so they are great for labels, and since they are an impact pin
printer (as opposed to a laser, deskjet or bubblejet) they can be used with multi-part
forms. These are available for only $60.
SINCLAIR QL MONITORS: we have these In limited supply, with more on the way, so
please call or write first to check on availability. These are black TTL RGB monitors
bearing the QL logo and designed to work great with the QL. On sale f or $125
SERIAL PRINTER CABLES for the QL: for the low price of $14 each.
3D PRECISION: a suite of programs which permits the creation and rapid manipulation
of three-dimensional objects in any color, or combination of colors on the QL. It even
comes with its own 3D Editor, SuperBasic Toolkit and Assembler Toolkit. Objects are of
the wire frame type. We normally offer this program for $40, but on sale for $25.
EYE-Q: an advanced graphics package for the QL to create sophisticated designs of any
size on the QL for saving, reloading in other programs or dumping to a printer
(hundreds of printers supported). Normally $54, on sale for $40.
HERMES REPLACEMENT EOR THE 8049: for dependable upto 19,200 baud operation,
improved sound and independent serial bauds all this and more for only $43. To
install requires opening your computer.
Psst! ! Looking for more Programs?? Cheap??
Here Is a very small list of what can be found out there in the world for the QL if you have a
modem and can call a BBS. For those of you without a modem, think about it. There are
several BBS's in the USA that cater to our line of computers.
There is also INTERNET. A world wide method of communicating via computer. They offer
programs and an opportunity to actively exchange electronic correspondence with other QL
users.
These programs have all been uploaded somewhere out there for QL'ers to use.
ABAtra_exp Psions' Abacus file format explained
ANSISR_zip strip ANSI codes from log files, uses TK2 and Qlib
BASCON_zip SB Extension for Linking in QJump Configuration Blocks
C401 A_zip C68 4.01 disk 1 . C for the QL various utilities
C400B_zip C68 4.00 disk 2. CfortheQL Main system disk
C68400_zip C68 runtime disk 3. Master doc disk for C68
The current "STANDARD for 'C'" on the QL.
CFG_zip place QPTR configuration blocks into 'C
CHECK_zip SB extension to check for (non) numeric INPUT
CIRCUI_zip Miscellaneous circuit diagrams and connector pin-outs
CRITMS_BAS Critical Mass Game (1 or 2 players) from Dec. 88 QL World
DISKS_TXT Text file describing using Teac 2.88Mb disk drives
DJEP_zip DeskJet printer utility, prints envelopes
DJWDEM_zip Demo copies; DiscOVER, MULTI-DiscOVER, TexTIDY & FLPCIone - -
EMAIL_txt Known INTERNET addresses of other QLers
FILEIN_zip Pointer environment utility
FNTSRC_zip source files (SB and Metacomco Assembler) FontEditor v.2.3
FONTED_zip QL FontEditor v.2.3 for the Sinclair QL
HDRRST_bas needed to restore file header of some transferred files
HISTDV__zlp Last line recall/history device for QL jobs
IBMDSK_zip Lets QL with TK 2 and 3.5 inch drives access IBM disks
LHQ_zip LHQ v1 .0 for the QL Another file archiver and extractor
MAIL_zip mail list program for ARCHIVE
Minnie__zip Text file detailing the Minerva ROM 1 .93+ features
MODPSLzip Some mods for the PSION suite of software
POINT_zip Description of setting up as QL FidoNet Echo Point
PullDown_zip This is a method of creating PULL-DOWN/POP-UP screens
QED_zip QED 1 .01 A general purpose editor for the QL
QEM_zip first? version of QeM
QEM24_zip QEM 2.4 early version of QEM
QEMV32_zip QEM v3.2 An excellent terminal program for the QL
QEM35U_zip QEM v3.5 upgrade files, upgrade QEM 3.0+ to 3.5
QEM36U_zip QEM v3.6 upgrade from v3.5
XPRLIB_zip Latest XPR libraries for QEM v3.5. needed for 3.5 & 3.6
QLGIF_zip Utilities to code and decode GIF files, by Carlo Delhez (1 993 version)
QLHD_zip Information on hooking up an IBM type MFM/RLL hard drive to a QL
QLIBRT_zip Qliberator runtimes version 3.36
QLSPIT_zip ZM-1 Spectrum Emulator for the QL. working demo
QPACER_zip QPACER QPac2 Boot Generator Issue 1.1
QSI_zip Determine speed of your QL, compared to QXL, Gold Card
QUADRI_zip Quadric Equation Plotter
QUILtra_exp Psions' QUILL file format explained
RELYQL_TXr A reliable QLI Text describing modifications to the QL
RESCUE_zip Floppy Disk Rescue & String Search Utility
Ruleta_zip Roulette game
SAVER_LZH Pointer environment screen saver. Set up as a hotkey
SPECTATR_zip Spectator v1 .00 - A Spectrum emulator for the QL
SPECKE_zip 4 graphic files of the Spectrum Computer keyboard layout
VERS_zip determines program info about other QPTR progs.
VIEW_LZH Pointer environment utility
XCHANG_zip Psion's QL Xchange v3.90 is now public domain
(Quill, Archive, Abacus, Easal in one package)
ZXTRICA_zip Xtricator v1 .1 0 - ZX81 emulator for the QL
Unzip22 Unzip version 2.2 for the QL (revised) NEEDED FOR THESE FILES
UNZIP9_EXE QL UnZip program Ver 0.96. by Jan Bredenbeek, exe form (early version)
ZIPUTLzip Zip Utilities v1 .0. utilities for dealing with zip files
ZIP22_exe Zip version 2.2 for the QL. (The "ES" version) (revised)
Zip22_txt Revised Docs on using Zip2_exe
FNxxxx_zip QL InterNational FidoNet Echo Mail messages, 14 files so far
QLxxxx_zip QL Quanta BBS Messages from the UK, 5 files so far
Spectrum/QL related files for the PC/Clone
ENV_bin ENV_bin code compatable with QXL and SMSQ
JPP_z!p Excellent Spectrum Emulator for 386SX or greater PC
Make_C_zip C68 files MAKE & CCP for the QXL
QDIR_zip Looks at QL disk DIRs on a PC
QLSCR_zip PC program to view QL screen files, can convert to GIF
QLTOOL_zip Lets a PC look/examine QL disk
QXLfmt_zip for the QXL card. Convert a disk to QDOS format (same as FORMAT?)
Z80V201 A_zip 1 28K/48K ZX Spectrum Emulator V2.01 by Gerton Lunter
Z80V201 B_zip LATEX and POSTSCRIPT DOC files for V2.01 Z80 Spectrum
QL related file for the MAC
CP2MC1_zip convert text/Quiil files to be used on the MAC
These programs and files fill 8 720 disks and are available for $8.00 (postage paid) from;
Paul Holmgren
5231 Wilton Wood Ct.
Indianapolis, IN 46254
QLerk QLerk QLerk QLerk QLerk
A BUSinSS PIKAICUL proBru hj BILL CABLI - looked at hj Hugh Howie
Page 1
The heading may make you think you are
listening to a flock of ducks on the
local millpond, or a skein of geese on
their annual migratory pilgrimage flying
high overhead. But really "QLerk" is the
name of a program by the renowned New
Hampshire programmer. Bill Cable.
Bill has spent a lot of time, a lot of
work, on this program, and he has tested
it in various businesses in his area.
The result is a program that will keep
your business records in order, or even
just your household finances in order.
The only limitation on the uses of this
program are what the user places on it
himself .
I was lucky in being able to look at
version 2.1, but now I have version 3.0,
and the improvement is significant. I
will not mention the previous version
again, as that would serve no useful
purpose, and I only mention 2.1 to show
that Bill is in a constant phase of
updating and improving the system, and
that is what it is - it is a system to
keep your records up to date.
This would be a good time to mention that
the program is vast. It is very complex,
very comprehensive. It is going to take
the user some time to get to know the ins
and outs of it. It is not for the faint
hearted, but once you have seen what it
can do - you will be impressed.
This is an Archive program, Archive being
provided on the program disk, but can
also be run using your own Archive. It
requires that you have extra memory, a
minimum of 512K extra memory would be
required. QLerk will run on a 7 . 5MHz QL,
but slowly. The Trump Card much better,
the Gold Card being best of all because
of its extra speed of operation.
Disk drives are essential, MDV could not
possibly hold everything. QLerk will run
from two 720 disks. Or, if you have HD
or ED drives or a hard drive, it could
all be run from the one disk. The
options are there for your own
configuration .
taking you through the example setup on
the disk, one keypress at a time.
The demo starts off by telling you how to
make your first backup of the program
disk, and takes you through each and
every step to get the demo up and
running. You are shown how to use the
Menus . How to check what payables are in
the system, and how to make payments.
How to handle receivables » how to write a
cheque, make purchase orders , invoices,
get various reports from the system.
Once you have run the demo a couple of
times, you will have an excellent idea of
how the whole system operates.
The Manual is easy to read and follow.
It describes the various Program Modules
and what each contains and does.
The whole is menu driven and there are
about a dozen and a half of them. Each
menu contains about 10 ■- 12 options, it
varies, and each option has its own set
of options.
Here is what the Main Menu looks likel-
Ocitabass i flpLnHHjan rm
Current Gro-p ; eld
JPayiiil.e ffic«ie....
Irfv'enlonj wm,,
Load i^lif.e.
ii^thily to ijoup.
Group...
ftain database.,
Support file.
Backup^^reffiost
Dirfictwy.,.,.,
Other
Mi..
uork on e;<pen«s ({:>ayi3bles,pirchrje orders jpoyients)
ycfk ofi reveftues toiMc^les,ir)Vuice>,incoiie) i bcrik/'til
iiork on iri',>entonj
report rfodute, address wM.p, systeif! K-duie
brinq monthly (reaastersd) records to gc-^i for inspectioi
edit (vieUjd-MjHje) ,m-<^ into si^jiri,icike rieu gt-'jup
edit wieu only), bring records to group ,to uork on
ejit (yieu,d-ii3ni3e,adij) address,ccite90rij,ites,duty,ijser
t-acki^) data i opt ion ly pijrge ckited records to lonthiy filj
directo^'-y a device uithi copy and delete optioris
print (abet, copy files hoie,help info,new user,r«creen
qijit M uith option to halt ffi?CHIUE Mj-o
I iJ-se key f^n cjr 1-9 or CfS' to choose and <£NTER) to accept |
To start with, there is an excellent
manual which contains a wonderful demo
33
QLerk QLerk QLerk QLerk QLerk
A BOSmSS FHAMCUL pro|r««^ JIU CABM^^^^ at hj Eugh Howie
taken care of.
Page 2
Now to keep track of all those Menus,
could be a formidable task, but there is
a complete page allocated to each menu.
That page starts off with a screen dump
of what the menu looks like, just as I
did above, and there is an explanation
under the dump, telling you what occurs
there. This Screen dump method of
displaying the menus, means that you can
refer to the manual for a particular
menu, and see what it does for you. Thus
helping you decide whether to go back or
forward to complete a task.
The facility on each menu can be selected
in a number of ways . You could use the
up/down arrow and ENTER, or you could
select by the key letter of the facility,
or, if you can remember the number of the
facility required, you can make the
selection by number!
Should you at any time get out of QLerk
by pressing ESC by mistake, just type 'm*
and you will be back into the Main Menu,
so all is not lost.
You want a hard copy of some aspect of
the business? By date? By occurrence?
Frequency? How often has someone done
business with you this last few weeks?
months? You name it, and you will
probably find the information is in there
somewhere, all you have to do is dig it
out, and with those easy-to-use menus, it
is not so difficult.
There is a complete Inventory system so
that you keep track of everything in
stock. Does its own value evaluation for
you. Enter Item, Price, and Number, and
everything is taken care of.
No matter what you do, it is almost
impossible to make an error. For
example, when you make some entries, you
are asked if you wish the entries to be
merged, and you must answer with Y or N,
thus you always have the opportunity to
make corrections BEFORE the documents are
altered or changed.
The system is completely inter-active, in
that an entry made in one mode, is
transferred to all other modes where it
is required, so that if a payment is made
by cheque, the money is removed from the
bank account, the account is reduced
accordingly. Where the money went and
where it came from, is all recorded
automatically. One aspect that Bill
mentions in his manual, will show just
how interactive the system is. If you
were to pay an account by VISA, the
account would be paid, and the system
would make out a new account showing that
you owed VISA that amount.
The system can handle up to five cheque
writing accounts at the same time. Plus
two or three cash registers.
The cheque is filled out by the printer,
and an address label printed ready to be
pasted to the envelope. Everything is
optional to your own requirements.
Payables, Receivables, Purchase orders.
Cheques, Invoices, are all available.
Inventory control , Bank Accounts , Cash
Registers, Taxes, Duties, Deductions,
Cyclical payments / receivables are all
If you have any questions to ask about
this program, why not write to Bill,
after all he can answer much better than
I can, and he is always willing to help.
His address isl-
Bill Cable
Wood and Wind Computing
RR 3. Box 92
Cornish, NH 03745. USA
Phone (603) 675-2218q
34
CABLE COLUMN
By Bill Cable
ARCHIVE SERIES
PART 15 : ENTERING QUERY - A PROGRAM TO
INTERROGATE ANY ARCHIVE DATABASE
The program (collection of procedures) listed below when
merged with the procedures we have entered up until now
gives us a useful program that can define and execute
complex searches in any ARCHIVE database using
simple menus. It allows us to not only find records by the
occurrence of text vsrithin a record but also by the fields of
a record meeting specified criteria. For instance we could
query the GAZET_DBF supplied with ARCHIVE for all
countries with high population densities which we might
define from menus as (area/pop)<5. We can view and
print out the results of each query. Besides being a fun
program to play with it provides us with ARCHIVE
statement building procedures which will be very handy for
later programs.
In this issue of UPDATE you will find a review of my
financial program QLerk by Hugh Howie. He kindly agreed
to be one of my Beta testers and put together his
experiences in the review. As he mentions it is a
comprehensive program and not for the casual user.
Financial programs are like that as you can't half do them.
They depend on a consistent and steady supply of
information and are of little use if not so used. QLerk has
changed very little in the past 8 months since it has been
released (on a very low key basis) as it has proved to t>e
very dependable. Unfortunately I haven't completed a
comprehensive manual yet. It is currently almost 50 pages
but should be close to 100 when it covers all features in
detail. I am now worthing hard on the manual after hardly
touching it since the Miracle in Newport Fest because of
other commitments. If you are Interested In the program
please contact me. I am selling It for $75. For the time
being until more detailed reviews and advertisements are
available I am willing to let potential users inspect the
program before purchasing it. I have no desire to sell it to
people who won't use it but I have to protect my very large
investment of time in its development and future support
for the very small potential QL market
PREPARATION
Start ARCHIVE in your customary way so you see the
ARCHIVE command prompt (>). Load the group of
procedures entered last time and saved in a file called
"groups". Start the editor and first modify "by.an'ow" and
"field_dispiay" procedures that have small changes and
then enter the new procedures. I have removed indentions
in order to make the listing fit compactly In this listing.
Save this old and new wori< in a file called "query". To run
first load "query" and type "query" to start.
LISTING OF PROCEDURES WITH CHANGES
proc by_anrow;sl,nl,sc,nc.bw.6$,ap
rem
rem Choose by moving arrow over options drawn on screen and
pressing <ENTER>
rem
rem Passed arguments defining screen area in blocks of rows
and columns
rem si - start line, nl - number of lines
rem sc - start column, nc - number of columns
rem bw - block width for choices on screen
rem s$ - string of key characters, ap - at position (between 1 and
nl*nc)
rem
rem Local Internal variables
rem nl - becomes end line number, al - at line (current line)
rem ac - at column (current column), il - last line position
rem Ic - last column position, es - length of key string
rem i$ - key press character, I - key press character ASCII code
rem k - acceptable key press flag
rem
rem Global returned variable
rem ans - returns choice value as position in s$ or 0
rem
rem Uses s$ length (es) to keep within defined boundaries
rem
local a!,ac,ll,lc,es.i$,i.k
if ap<1 or ap>nrnc: let ap=1; endif : let nl=sl+nl-1
print rv$;
let al=st+int((ap-1 )/nc): let ac=sc+((ap-(al-sl)*nc)-1)*bw
let lt=al: let lc=ac: print at al.ac;chr(14);"";: let es=len(s$)
let i=0: while i<>30 and i<>48: let i=0: let i$=upper(getkeyO)
if ap<es: let k=instr(s$(ap+1 to es),i$): else : let k=0: endif
If not k; let k=lnstr(s$,i$): else . let k=k+ap: endif
if not k: let i=code(i$); if i>48 and i<58: let k=i-48
if k>es: let k=0: endif : endif : endif
if H: letal=int((k-1)/nc+1): letac=(k-(al-1)*nc)*bw+sc-bw: let
al=al+sl-1
else : if 1=30 or 1=48: let k=i
else : if i=2: letk=i: letal=al-1
if al<sl: let al=nl- endif : else : if i=3: let k=i: let al=al+1
if al>nl: let ai=sl: endif
else ; If i=4: let k=i: let ac=ac+bw
if ac>sc+bw*(nc-1); let ac=SG: endif
else : if 1=5: let k=i: let ac=ac-bw
rf ac<sc: let ac=sc+bw*(nc-1 ): endif : endif : endif : end'rf : endif
if nc*(al-sl)+(ac-sc)/bw+1>es: let ac=sc: let al=sl: endif : endif :
endif
if lloai or icoac: print at li.Ic;" ";: let ll=al: let lc=ac: endif
let ap=(al-sl)*nc+(ac-sc)/bw+1
if k: print at al.ac;"";: else : print at al.ac;"?";: endif : end\rt^ile
if 1=48: print at al,ac;"0";rv$;chr(15);
else : print at al,ac;"+'';rv$;chr(15);: endif
let al=al-sl+1 : let ac=(ac-sc)/bw+1 :rem let ans=10*al+ac
if 1=48: let ans=0: else : let ans=ap: endif
endproc
proc field_display;l$,sl,nl,sc,nc,bw,fw
let n=0: let al=sl: let ac=sc: let cc=1: tet fldjist$="": while
n<numfld()
let i$=fieldn(n,l$): If len(i$)>fw-2: let l$=l$(1 to fw-2): endif
if len(i$)=1: let l$=upper(i$)
else : let i$=upper(i$(1))+lower(i$(2 to len(i$))): endif
let fldjist$=fldjist$+i$(1 )
35
print at al.ac.iS;: let n=n+1 ; let cc=cc+1
If cc>nc; let ac=sc let al=al+ 1 . let cc=1 ; else : let ac=ac+bw: endif
endwhile
en dp roc
LISTING OF NEW PROCEDURES
proc arrow_clr
print chr(8),rv$i" ";rv$,
endproc
proc arrow_mess;m$
clx;21,rv$:: let l=(80-(21+len(m$)))/2
print at 22,1 ;n/$; tab i;"Move arrow to choose "+m$; tab 79;
print at 23,1 ; tab 25;"<ENTER> to select or 0 to exit", tab 79,rv$;
endproc
proc clx;n.r$
print at n,0;r$;cs$i at n,1 ;r$;
endproc
proc do_tmp;c$
let l$=sd$+"tmp_tmp": kill i$: spoolon i$ export
Iprint "proc tmptmp"
Iprint c$; Iprint "endproc": spooloff
merge i$: error tmp_tmp: if ermum():erTy;23,"searching"
let 1$="": endlf
endproc
proc field _plck;m$
anrow_mess;m$;by_an^ow;1,fld_rows,0,fld_cols,fld_wid,fldjist$,1
anrow_clr
endproc
proc fleld_size_1
use "s": let n-numfld()
if n<29: let j=2: let k=20; else : if n<43: let j=3: let k=20
else : if n<57: letj=4 letk=15: else : if n<71; letj=5: let k=15
else : if n<85: let j=6: let k=1 3: else : if n<99: let j=7: let k=1 1
else : if n<1 13: let j=8: let k=9: else : if n<127: let j=9: let k=8
else :acky;23,'Too many fields to display":get_files: stop
endif : endif : endif : endif : endif : endif : endlf : endif
let i=int{(n-1)/j+1)
let fld_rows=i: let fld_cols=j: let fld_wid=k
endproc
proc prt_end
if prt: Iprint : Iprint : Iprint "Query completed with ";cnt;" matches"
endif
endproc
proc prt_head;m$
if prt and l$<>'"':msg;23,"printing"
Iprint "QUERY OF ARCHIVE DATABASE "+sd$+sn$;
Iprint tab 65;date(0)
Iprint tab 65;count();" records"
Iprint "Query : ": Iprint " ";m$: Iprint : endif :liny;23
endproc
proc prt_record
if prt: Iprint tab 70;cnt;" - ";recnum()
if prt=1: if d1>-1: Iprint fjeldn(dl);" : ";fieldv(d1): endif
if d2>-1: Iprint " ";fieldn(d2);" : ";fieldv(d2); endif
if d3>-1: Iprint " ";fieldn(d3);" ; ",fieldv(d3): endif
else : let i=0: while i<numfid(): Iprint fieldn(i);" : ";fieldv(i): let i=i+1
endwhile : endif : endif
endproc
proc query
mode 0:setup: error close_ail
heady;"Query an ARCHIVE Database"
print " 1 The source database will be looked at (not altered)."
print " 2 For An-ow Menus use arrow keys, 1-9, or a-z of capped
letter in"
print " choice for picking selection then <ENTER> to activate "
print " 3 You can Query the database by matcing text within a
record (Find) "
print " 4. You can Query the database by building from menus a
true/false"
print " statement using fields of the record and ARCHIVE
functions and then"
print " searching for records for which the statement is true "
print " 5 Statements have values which are either TEXT or
•NUMBER' Only"
print " Numeric statements can be searched and nonzero is
tme, zero false."
print " 6. Up to 3 statements can be stored in slots to be used in a
search"
print " or used for building more complex statements."
print " 7 Only 3 fields of a record are displayed but are user
selectable "
print " 8. Matches can be manually or automatically stepped
through "
print " 9. Output goes to the screen and can go to the printer
also."
print "10. A temporary file 'tmpjmp' may be written to source
device."
device ;21, "Device where source database is located eXit to
stop"
if ans$="": mode 1 : stop : endif : let sd$=ans$: dir sd$
inpy;23," File name of source database (with extension)"
let sn$=ans$
if sn$="":query return : endif
if instr(sn$ ,"_")> 1; let sn1$=sn$(1 to instr(sn$,"_")-1 )
else ; Ietsn1$=sn$: let sn$=sn$+"_dbf'; endif
error looky;sd$+sn$,"s": if ennum():en7;23,"accessing "+sd$+sn$
query: return : endif
Ietd1=0: Ietd2=-1: Ietd3=-1: if numfld()>1: let d2=1: if numfld()>2
Ietd3=2: endif: endif
let s1$="": let t1$="": let s2$="": let t2$="": let s3$="": let t3$=""
field_size_1 : mode 0
print rv$; tab 5;"Fields of ";sd$+sn$; tab 67;count();" records"
field_display;"s",1.fld_rows,1.fld_cols,fld_wid.fld_wid: print rv$;
letprt=0: while 1: first :clx;16,rv$:show_record:clx;21,rv$: letl$='"'
if prt: let i$="on": else : let i$="off ': endif
print rv$; tab 24;" Query Options"; tab 72;"prt ";i$
print" Find Search Build Display Print Quit";rv$;
by_anrow;22.1 .1 .6.12,"FSBDPQ".1
if ans=0 orans=6: error dosejall: mode 1: stop : endif
if ans=1 or ans=2: if ans=1:inpy;23,"Flnd what": let l$=ans$
prt_head;'Tind '"+!$+ : if l$<>'"'
clx;16,rv$: print rv$;"Finding "';l$;""';rv$: find 1$: endif
else :stm_display:stm_j)ick
if l$- "':acky;23,"Build a search statement first"
else : if t$='TEXT':acky;23,"Can't search with TEXT statement"
letl$=""
else :prt_head;"search "+l$:clx;16,rv$: print rv$;"Search ";l$;rv$
en-or do_tmp;"search "+l$: if emium():eny;23,"search"
let 1$="": endif
endif : endif : endif : if !$<>"": if not found():acky;23,"Not found"
else ; let ans=1 : let qy=1 : let cnt=0
while ans=1 and found() and not eof()
show_record: let cnt=cnt+1
print at 23,53;"Match # ";cnt;" Rec # ",recnum();
prt_record. if qy
printat23,1,rv$;" Continue Automatic eXit",rv$,
by_arrow,23,1,2,3,12,"CAX",1: endif: if ans=1 orans=2
continue : endif : if ans=2: let ans=1: let qy=0: endif : endwhile
36
if ansoO and ans<>3 and 1S<>""
acky;23,"Done after "+str(cnt.2,0)+" matches"
prt_end endif endif : endif
else if ans=3:stm_display;stm_build
else If ans=4 Ietd2=-1: Ietd3=-1
let j$=" field to display"
field_pick,"First"+jS let d1=ans-1 show_record
field _pick,"Second"+j$ let d2=ans-1.show_record
show_record field _pick;"Thjrd"+j$: let d3=ans-1
else : if ans=5. if prt let prt=0
else yom,23, "Print 3 fields like display rather than all fields"
if ans$="y". let prt=1 : else : let prt=2: endif
endif . endif : endif : endif : endif : endwhile
endproc
proc show_record
clx,18,"" if d1>=0' print fieldn(d1);" : ";fleldv{d1): endif
if d2>=0 print " ";fieldn(d2);" ; ";fieldv(d2): endif
if d3>=0 print " ",fieldn(d3)," : ",fieldv(d3) endif
endproc
proc stm_build
while 1:clx;21,rv$: print rv$; tab 16;"Statement Building"
print " Build a new statement eXit statement building";rvS,
by_arrow,22, 1,1, 2,28, "BX",1 if ans=0 or ans=2: return : endif
if ans=1 stm_constnjct,"First Part"
if 1$=""; retum ; endif : let la$=l$: let 1$="": let ta$=t$: let t$=""
stm_construct;"Second Part': let lb$=l$: let tb$=t$
if (ta$<>tb$) and lb$<>""
acky:23,"1st and 2nd Statement parts have mismatched types"
let ta$='"' let lb$=""- endif
if lb$<>"": let iS="Relate ("+la$+") to ("+lb$+")"
if len(iS)>70 leti$=i${1 to 70)+" " endif clx,21,rv$
print rv$,i$," by ", at 22,0," =<>>>=<<= +"
let i$="=<>=<=+": if ta$-TEXr'; let i=1: else
print" - * / ^ And Or eXit"
let i=2: let i$=i$+"-*/^AOX": endif
print rv$, by_arrow,22, 1,1,7, 7,i$,1
if ans and ans<>14: let i$=i$(ans): if ans=2:: let i$=i$+">"
else if ans=4 or ans=6: let i$=i$+"="
else if ans=12 let i$=" and "
else if ans=1 3. let i$=" or "; endif : endif : endrf : endif
let IS="("+la$+iS+lb$-t-")"
if ans=7 and ta$='TEXr': let t$=ta$
else : let t$="NUMBER":: endif ; endif
else let l$=la$: let t$=ta$ endif
if l$<>"":clx,21,rv$: print rv$;"New statement : ";l$
yom,23,"Put new statement in statement slot"; print rv$,
if ans$="y":stm__put
endif endif ; endif : endwhile
endproc
proc stm_construct;m$
clx,21,rv$
print rvS; tab 7, "Building new statement : "+m$+" starts with"
print" Field Text Number Statement Bypass";rv$;
by_arrow,22,5,1,5,14."FTNSB",1
let 1$='"'; let t$="": if ans=5 or ans=0:: retum :: endif
if ans=1 field_j)ick;"Field for statment"
ifansoO let ans=ans-1: let l$=fieldn(ans)
iffieldt(ans) let t$='TEXT': else : let t$="NUMBER": endif ; endif
else : if ans=4;stm_pick
else if ans=2. let t$="TEXr: else let t$="NUMBER": endif
print at 23, 1 irvS," Enter "+lower(t$)+" : ";rv$," ";: input i$. let l$=i$
if t$="TEXr': let IS=""'+I$+"'": endif ; endif : endif
let i$=IS: if len(iS)>45; leti$=i$(1 to 45)+"..": endif
if t$="TEXr':stm_textii$: else stm_number;i$: endif
endproc
proc stm_display
clx,16,rv$ print rv$," Slot Type Statement";rv$;
stmjine;1,s1$,t1$
stmjine;2,s2$,t2$
stm_line;3,s3$.t3$
endproc
proc stm_line;l,l$,t$
if len(l$)>60: letl$=l$(1 to 60)+".;': endif
if len(t$) let i$=t$(1);: else : let i$="": endif
print rv$, at 16+l,3;l. tab 9,1$; tab 15,1$; tab 79;rv$;
endproc
proc stm_numberm$
clx;21,rv$: print rv$;"Modify ("+l$+") with which function :
print at 22,1;" None AbsQ Chr() IntQ Sgn() Str()";
print rv$;:by_an-ow;22,1 ,1 ,6,9,"NACISS",1
if ans<2: return else : if ans=2: let l$="abs("+l$+")"
else if ans=3: let l$="chr("+l$+")": lett$="TEXT"
else : if ans=4 let l$="int("+l$+")"
else ; if ans=5; let l$="sgn("+l$+")"
else : if ans=6; let l$="str("+l$+",3,0))": let t$="TEXT"
endif : endif : endif : endif : endif : endif
endproc
proc stm__pick
an'Ow_mess;"Statement
slot":by_an-ow;17, 3,2,1, 20,"123".1;arrow_clr
if ans=0: retum ; endif
let i$=str(ans,2,0)+"$": let l$=value("s"+i$): let t$=value{"t"+i$)
endproc
proc stm_put
arrow_mess, "Choose slot for new statement"
by_arrow; 17,3,2,1 ,20,"1 23", 1 :arrow_clr
if ans=0: retum ; endif ; let t4=1 : if ans=1: Iets1$=l$; Iett1$=t$
else ; if ans=2: let s2$=l$: let t2$=t$:, else : let s3$=l$; let t3$=t$
endif : endif . stmjine;ans,l$,t$
endproc
proc stm_text;m$
clx,21,rv$. print rv$, "Modify ("+m$+") with which function ; ";
print at 22.1 ." None Code() lnstr() Len() Lower() Upper() Substr";
print rv$;:by_an-ow;22,1.1,7,9."NCILLUS".1
if ans<2: return : else : if ans=2: let l$="code("+l$+")": let
t$="NUMBER"
else ; if ans=3:clx;21 input at 22,1;"Text for instrQ test : ";i$
let i$=""'+i$+""': let t$="NUMBER" :yom;23,"ls "+i$+" the substring"
if ans$="y"; let l$="instr{"+l$+","+i$+")"
else : let l$="instr("+i$+","+l$+")": endif
else : if ans=4: let l$="len("+l$+")"; let t$="NUMBER"
else ; if ans=5; let t$="lower("+l$+")": else ; if ans=6
let l$="upper("+l$+")"
else :clx,21,"" inpy;22."Beginlng position for substring "
let i=val(ans$)
inpy;23,"Ending position for substring ": let j=val(ans$)
if i>0 and j>=i and j<255; let l$=l$+"("+str{i.2,0)+" to "+str{j.2,0)+")"
endif ; endif : endif : endif : endif : endif : endif
endproc
Sorry that there is no detailed documentation within most
of these procedures but time and space prohibit it. The
Cable ARCHIVE Issue Disk has been updated to include
the groupl, group2, groups, and query programs covered
in UPDATE plus matcher, replace, and windex procedures
covered in IQLR. Next time another useful ARCHIVE
program. Until then, Happy Archiving!
100 REMark
**********************************************************
..r. r.T.w 1 u. A-DEE-DOO-DAH 1.0
110 REMark *
120 REMark *
*
130 REMark *
by Al Feng
AN UNZIP FRONT END
140 DATA_USE RAM1_: REMark ******** SAVE as "DooDah_BAS"
*********
150 F$="_FLIST_iinp" : t$="xxx" : S$="xxx" : W$="l"
160 pn=0 : POKE 163890,0 : MODE 0
170 WINDOW#2,512,256,0,0 : PAPER#2,7 : BORDER#2,l,7 :INK#2,0
CLS#2 : WINDOW#0,413,10,50,241 : PAPER#0,7 : INK#0,0 :
WINDOW 462,250,25,3 : 0PEN#3 , scr_458x200a27x48 : PAPER#3,7
0PEN#4,scr : u$=" A-DEE-DOO-DAH " : AT#2,21,4 :
PRINT#2,u$;" by Al Feng "\T0 4;" 1994 PLATYPUS Software "
PAUSE 30
180 PAPER 7 : BORDER 1,7 : CLS : CL : Ine : AT 0,7 : PAPER 5
INK 0 : PRINT" SELECT_DEVICE " : cj
190 DEFine PROCedure CLSc : BLOCK 458,225,0,10,0 : END DEFine
200 DEFine PROCedure CLSd : BL0CK#2 , 330 , 10 , 83 , 240 , 7 : END
DEFine
210 DEFine PROCedure CLSe : BLOCK 458 , 190 , 0 , 45 ,pn : END DEFine
220 DEFine PROCedure sx : DIM Z$(40,48) : DELETE t$&W$&F$
230 0PEN_NEW#6,t$&W$&F$
240 DIR#6,t$&W$&"_" : CL0SE#6
250 0PEN_IN#7,t$&W$&F$ : FOR c=0 TO 40
260 IF EOF (#7) THEN EXIT C
270 INPUT#7,Z$(c) : END FOR c : CL0SE#7 : c=c-l : END DEFine
280 DEFine PROCedure sw : IF W$<=8 THEN g$=W$-l :
IF W$>=1 THEN h$=g$+2
290 IF g$=0 AND t$=»»flp»» THEN LET tl$=»»rain" : ELSE
tl$="flp" : END IF : gl$=l
300 IF g$>0 THEN tl$=t$ : gl$=W$-l : END IF
310 END DEFine
320 DEFine PROCedure Rx : INK#3,7 : PAPER#3,0 : AT 2,9 :
PRINT t$;W$;"_" : FOR a=0 TO 18
330 IF a<l THEN a=a+a
340 FOR n=l+a : AT#3,a,0 : PRINT#3 , " { " ;CHR$ (n+a+48 ) ; " }
";Z$(n+a+l)
350 FOR n=2+a : AT#3,a,38 : PRINT#3 ,"{" ;CHR$( n+a+48 );" }
";Z$(n+a+l)
360 NEXT a : END FOR a : rx2 : END DEFine
370 DEFine PROCedure rx2 : BLOCK 18,1,0,236,7 : BLOCK
18,1,0,247,7 : BLOCK 4,12,20,236,7 : BLOCK
413,1,20,236,7 : BLOCK 413,1,20,236,7 : BLOCK
413,1,20,247,7 : BLOCK 2,12,456,236,7 : STRIP#2,7 : AT#2,24,4
INK#2,0 : PRINT#2," *- " : BLOCK 2,13,18,235,5 : AT#2,24,8
INK#2,2 : PRINT#2,tl$&gl$;"_"T0 71;t$&h$;"_" : AT#2,24,78
INK#2,0 : PRINT#2,"-»- " : BLOCK 4,12,432,236,7 : BLOCK
6,12,438,236,7 : BLOCK 18,1,438,236,7 : BLOCK
18,1,438,247,7 : BLOCK 2,12,436,236,5 : BLOCK
458,1,0,235,5 : END DEFine
3 8
380 DEFine PROCedure Uu : sx : pn=0
390 DEFine PROCedure Uv : sw : Rx :
400 DEFine PROCedure Uw : wx : k3 ;
410 DEFine PROCedure pk : k=k-48
420 IF k=-21 THEN CLS#2 : nd
430 IF k<=~l AND ko-14 OR k=77 OR k=78 THEN Uw
440 IF k=-14 THEN Uw
450 IF k>=160 THEN Uw
: CLSe : Uv : END DEFine
k3 : pk : END DEFine
pk : END DEFine
460
IF
k=144
THEN IF W$>1
THEN W$=W$-1
: Uu :
ELSE
iX :
Uw
470
IF
k=146
AND t$="ram"
THEN t$="flp"
: a$=
1 : Uu
480
IF
k=146
AND t$ = "indv"
THEN t$="flp"
THEN t$="rain"
: a$=
1 : Uu
490
IF
k=146
AND t$="flp"
: a$=
1 : Uu
500
IF
k=152
THEN IF W$<2
THEN W$=W$+1
• Uu :
ELSE :
iX :
Uw
510
IF
k=156
THEN W$=W$+1
: Uu
520
530
tre=3
WCh
INK#2,7
AT#2,24,36
PRINT#2,"! "
AT#2 , 24 , 29
STRIP#2,0
STRIP#2,7
IF k=79 THEN CLS#2 : Ine
IF k=0 THEN GO TO 180
540 END DEFine
550 DEFine PROCedure wx : STRIP#2,2
PRINT#2," ERROR"TO 49; "ERROR " :
PRINT#2," WRONG KEY"; : INK#2,5 :
INK#2,0 : B5 : CLSd : B5 : END DEFine
560 DEFine PROCedure iX : AT#2,24,35 : PRINT#2 , "invalid drive"
: B5 : PAUSE 10 : END DEFine
570 DEFine PROCedure k3 : REPeat key
580 k=CODE(INKEY$) : IF k>8 THEN EXIT key
590 END REPeat key : END DEFine
600 :
610 DEFine PROCedure MAIN
620 BLOCK 458,12,0,0,2 : STRIP 2
PRINT"unzip"
630 BLOCK 458,1,0,11,5 : BORDER 1,5 :
640 CLSc : STRIP 0 : INK 2 : AT 2 , 1
cr=0 : Rx
650 FREE=(PEEK_L( 163856 )-PEEK_L( 163852) -1024)
AT 0,36
INK
BLOCK 458,1,0,235,5
: PRINT" UN-ZIP " :
sw
660 INK 5 : AT 2,57
PRINT"ilobytes" ; : INK 7
670 k3 : pk
680 LET ZIP$=Z$(k+l)
690 CLS#2
700 IF k<c THEN
LEN(ZIP$)-4)
710 CLS#2 : BORDER#2,l,7
720 :
730 DEFine PROCedure Bl :
740 DEFine PROCedure B2 :
750 DEFine PROCedure B3 :
760 DEFine PROCedure B4 :
770 DEFine PROCedure B5 :
780 DEFine PROCedure
458,1,0,10,0 : END DEFine
790 DEFine PROCedure nd
END DEFine
800 DEFine PROCedure CL
INK 5 : AT 0,64
PRINT FREE/1024;
K";
INK
EXEC_W t$&W$&"_unzip" ; ""&ZIP$ ( 1
TO
: wx : MAIN :
BEEP 100,10
BEEP 200,20
BEEP 900,20
BEEP 900,40
B3 : PAUSE 5
END DEFine
: END DEFine
: END DEFine
: END DEFine
: END DEFine
: B4 : END DEFine
Ine
BL0CK#2 , 458 ,1,24,2,0
PAPER 7
Ine
B2
BLOCK 450,220,0,11,7
PRINT shift TAB ' :
tre=l
PAPER
AT 0,0
BLOCK
WCh
PRINT"
TAB -*";
PAPER 5
INK 0 ; PRINT" SELECT_DEVICE UN-ZIP "TO 57;" EXIT
END DEFine
810 DEFine PROCedure K4 : PAPER 7 : REPeat key
820 ike=CODE(INKEY$)
830 IF ike=9 OR ike=32 OR ike=252 OR ike=253 OR ike>47 AND
ike<58 THEN B3 : EXIT key
840 IF ike>=58 AND ike<252 THEN B4 : K4
850 END REPeat key : END DEFine
860 DEFine PROCedure Pick
870 IF ike=253 THEN B4 : PrvW
880 IF ike=9 THEN B3 : NxtW
890 IF ike=252 THEN B4 : B5 : GO TO 1180
900 END DEFine
910 DEFine PROCedure NxtW
920 tre=tre+l : IF tre=3 THEN tre=0
930 WCh : END DEFine
940 DEFine PROCedure PrvW
950 tre=tre-l : IF tre<0 THEN tre=2
960 WCh : END DEFine
970 DEFine PROCedure WCh : WIND0W#4 , 186 , 10 , 165 , 14 : Ine : CL
980 IF tre=0 THEN AT 0,7 : PRINT" SELECT_DEVICE " : K4 : Pick
: cj
990 IF tre=l THEN AT 0,22 : PRINT" UN-ZIP " : K4 : Pick : CLS
: MAIN
1000 IF tre=2 THEN AT 0,57 : PRINT" EXIT " : K4 : Pick : GO TO
1180
1010 END DEFine
1020 DEFine PROCedure cj : pn=7 : CLSe : BLOCK 90,100,42,11,0
: BLOCK 88,99,43,11,7
1030 PAPER 7 : PAPER 5 : INK 7 : AT 10,7 : S$=t$ : PRINT" [ " ;
: INK 0 : PRINT S$&W$; : INK 7 : PRINT"_mode ] "
: AT 11,7 : PAPER 0 : PRINT u$ : PAPER 7
1040 INK 0 : BEEP 100,29 : AT 2,9 : PRINT' "R" = rainl_' : AT
4,9 : PRINT' "F" = flpl_' : AT 6,9 : PRINT' "R" = indvl_' : AT 8,9 :
PRINT '"O" = other'
1050 S=C0DE(INKEY$(-1) )
1060 IF s=9 THEN B3 : CLS#0 : BLOCK 90,112,42,11,7 : tre=l :
WCh
1070 IF s=253 THEN B4 : CLS#0 : BLOCK 90,112,42,11,7 : tre=3 :
WCh
1080
IF
s=77
OR
s=109
THEN t$="indv"
: w$="l"
1090
IF
s=78
OR
s=110
THEN
t$="indv"
: W$="2"
1100
IF
s=70
OR
S=102
THEN
t$="flp"
W$="l"
1110
IF
s=71
OR
s=103
THEN
t$="flp"
• W$="2"
1120
IF
s=72
OR
s=104
THEN
t$="flp"
W$="3"
1130
IF
s=82
OR
s=114
THEN
t$="ram"
W$="l"
1140
IF
s=84
OR
s=116
THEN
t$="ram"
W$="2"
1150
IF
s=87
OR
s=119
THEN
t$="win"
W$="l"
1160 IF s=79 OR s^lll THEN WINDOW#0 , 90 , 30 , 69 , 84 : INK#0,5 :
AT#0,0,7 : PRINT#0," 7 : INK#0,2 : AT#0,0,8 :
INPUT#0,t$; : INK#0,5 : AT#0,0,11 : PRINT#0," _" :
INK#0,2 : AT#0,0,11 : INPUT#0,W$ : WINDOW#0 , 413 , 10 , 50 , 241
1170 sx : B5 : nd : END DEFine
1180 CLS#2 : INK#2,5 : AT#2,24,32 : PRINT#2,"§ PLATYPUS
Software"
40
JOHN B. PEGRAM
1126 STRADELLA ROAD
LOS ANGELES, Ck. 9Q>Q>77
November 2, 1993
3?9 Walton Street Rear
Lemoyne, PA. 17043
Dear Dave:
I loaded my copy of the program "Z88C0M_CL I '* from your
disk and could never get it to work on the Z88. I did not
have much time to spend on it so waited until I obtained a
copy of the same program in Tim Swenson 's "Z88 Source Book".
When I printed out the two programs I found four lines in my
copy of your version that were different in the machine code
assembly portion of the program, these are as follows for
your information if these lines are erronious on your copy of
this program.
Line ASCII text
3280 LD HL, RESND-'CALL PRTMSG:LD A,(SEC):CALL PRTBLKTBLKTRLE
3280 LD HL, RESND:CALL PRTMSG:LD A,CSEC):CALL CRLF
3380 LD HL, SNDCMP.-CALL PRTMSGSGSRLF
3380 LD HH, SNDCMPrCALL PRTMSG:CALL CRLF
4310 LD IX, (HDLCM)CM)CLZ
4310 LD IX, CHDLCM) :CALL CLZ
4390 LD IX, CHDLRX)X)XLZ
4390 LD IX, CHDLRX) :CALL CLZ
Somewhere in the copying of this program the above
errors crept in. When I transferred the uncorrected file to
the Z88 and converted it into Z88com. bas it loaded with the
remark "unknown error" and bombed out when I tried to run it.
The corrected copy loaded without an error and works OK.
Simcerely yours,
4 t
00 -
00 -
M -
0) -
u> -
P -
v
n -
E I
o -
U I
0 I
H -
k— —
o -
-o o
uj3y HI
COZ§Q
u
C I- l.
C Ol i-
V -Q L.
CX C 41
<D a 4-'
I- c
I- (D
I? "
— <0 1-
3 8^
0) .1:!
1?
^ CO
£ 8 SI
(A <
H (.
(. (. a> 1
a 41 4-< <
^■8 J
£ y 3
(0
^-5 a
"3 « ft)
1
i5 i
8 <0 ^ —
2 8
'-8 '
° S ^
ill
<u o
9 — a a. H- a
1^^
«->«««_ I. c
z - ^ ,? :^ S
ft* L. 3
«- C >
22 ?
5^ "8
a> o
MUX
15
51
a
>
00
O
OQ
I
8 § ^ CO §
-2
W • M +J JZJ
CS OQ H
>
Q
OOmOQQOQ
ooojoooino
> ot
o
00
00
N
</) 0)
z t2EE
O u. <D CO CO
r: 0) CO > <i>
< CO W CC CL CL > N 03
O K O O) o o K
lO CO w lo in K
CM W CM €M CNJ CN4
So
UJ «j re ojQ reO
Q. OC CC OC OC < CD O
ir> in CO T-
CsJ u Cficb C»4
goinino oooQ
ioo>o> o otnoLQ
C3"iir'«r'^>«-' cvicoin<o
T}- T— T- T- ■»— T—
(>J Oi C»4 Ol C»4
Z
roO
p re
X (DO. c nj
(DU. ^tr . o
</)t- <D Q>oS
a:~? © c^i^: c
MjoS jc re-j^ ^ —
p c w £ .>< .a
°^*?555SS V:'cOoOoOoOoo "JSP
Q.oa5a5a5QQ ojnnnnn QZQ.
<X)C/)
gQCQ2Q.3
E
>- w
OC
E_
Z33
o^inojgjcvi
00 o T- m CD T-
inin CO
oif^ to
CO CO CO
cue*! T-
<0 CO T- CO
T- ojinco
to
oSSsfll
Onnncc<q-
DC re re-g
5ccoc<
<cvjT-2
CE T-IO T-
£E o re re
O «Q- Q- >-
Q. CNj CM in fl-
oooin
OO O C3^
in in CO CM
z
o
itn^g
a re re reo
NCCQCir CL
inininino
00 CM 00 1^ r>^
G4C0t-C*JO
<UCa CM
cooooo
c*» CO wr-^
C>4 CM
oorjr^
C4CM CO
>
S re S<
UJ
<
0)
OQ.-JHU.Q.2ZZ
III
n\
ijr
IvS
ii3
III
till
till
0
o
0
CO
CO
0
O
a
CO
00
00
M
o
e
o
E
o
o
o
s:
55
<1) D
Oil
o
§5
<0 CO
00^^^"
M O C
6x3 t- 6
O <D ^ p
jx: . .ia Q 3
M E CL "D CD
^ o
o ^
© « c
<D^ • C
55 o E -
© m
^ o x: <o :c
D 8^
^ ^ o . 2,
© £ 0 5
>- D C -
^ O <D >
p qJ ^ O
Q £) 5 0)
S 8
C —
o
c P
' oo O
© JO
u. Q n 3
^ « 5 ^- §
?3 £<^:= ^
5 tr 00
O t (1)
^ y O
o o|
O
o
z
CO
a
o
Q>
>
o
a
CO
CO
M
o
o
oo
c
o
o
QQ
9S;
§°<5
S * h
*> " O
WW
O cx> Q-OO -t
> <B >. O (D
D ® 0) c
M ® I 0) g
g E ^ CO 5
(J C T) O ®
^ 2E B ^
2 g -Q 5 Q-
SOFTUJnR€®
flL6€RT f . RbDRIGU€Z
PROPRIETOR
1 eOS PENNSYLVANIA AVE.
NO. aoA
MIAMI BEACH. FU 331 38
ZX-TEXT
C30S) 931-6484
THE PROGRRM IS MENU -DR lUE N .
IMMEDIRTELY RFTER IT IS LORDED
YOU WILL BE CONFRONTED WITH R
GRRPHIC FRRME LISTING THE NRME
OF THE PROGRRM WITH R PROMPT
MESSRGE URGING YOU TO
CHOOSE RN OPTION. THE CHOICE
MUST BE MRDE USING ONLY R
NUMBER BETUEEN 1 RND 5.. IN-
CLUSIVE .
THE OPTIONS FERTURED IN THE
UHRT THIS PROGRRM IS
^5?.?J^7.J*^^^^ RBOUT. RN IN-
SjyjgURL EXPLRNRfTION OF THESE
OPTIONS RND THEIR FUNCTIONS
WILL RLLOU YOU TO ERSILY
RND EFFECTIVELY USE THIS PRO-
GRRM. RFTER YOU HRVE R
CLERR UNDEIRSTRNDING OF HOU TO
USE THE PROGRRM, IT UILL BE
PRIMRRILY UP TO YOUR IMRGINR-
TION TO DETERMINE HOU YOU MRY
RPPLY IT. THOUGH, I UILL MRKE
SOME SUGGESTIONS TOURRD THE
END OF THIS PRESEINTRTION RBOUT
HOU THIS PROGRRM DOES HRUE
SOME PRRCTICRL RPPLICRTIONS .
THIS PROGRRH IS RBOUT WORD
PROCESSING. USING IT TO URITE
THE TEXT OF THESE INSTRUCTIONS
SEEMED R GOOD URY OP SHOUXNG
UHRT XT CRN DO RND UHRT XT CRN
BE USED FOR.
-r,r'^tlS..'^?SgS^tL^^ SELF -RUNNING,
?5 X2H S^E^JI ^^OM EXECUTING
Jlnr-SSy. ®^ RESTRRTED EITHER BY
ENTERING "RUN" 4 IF YOU DO
S2I...^95E,-v^O^^NG UHRT YOU HRKJB
BEEN COMPOSING) OR "GOTO SO"
(IF YOU URNT TO RUOID
LOSING^WHflTEUER YOU HRUE BEEN
_ THE PROGRRM URS MRDE WITH
g^RTRIN l^IMITS IN MIND. IT
OFFERS 2^0 LINES RT 30 COLUMNS
RURILRBLE PER LINE, RT RN
RUERRGE OF 5 UORDS PER LINE IT
SHOULD PROUIDE ROOM ENOUGH FOR
RBOUT R 13^>0 UORD ESSRY , DE-
PENDING, OF COURSE, ON THE
STYLE OF URITING OF THE
RUTHOR. IF EUER THERE SHOULD
RPPERR R FLRSHING, INVERSE
VIDEO MESSRGE SRYING THRT
THERE RRE NO MORE LINES RVRIL-
RBLE, THEN, YOU SHOULD
,^iy2..^^»1«''"E^ER TEXT YOU HRVE
URITTEN TO THE PRINTER OR
STORE THE SRME ON TRPE BEFORE
CLERRING THE STORRGE RRER SO
THRT YOU MRY BEGIN RNEU ,
THE FIRST OPTION PERMITS YOU
TO WRITE, STORE RND DIS-
PLRY TEXT ON THE SCREEN IN
SCROLL FRSHION, THE LINE
BEING WRITTEN IS COMPOSED IN
THE ENTER LINE RT THE BOTTOM
OF THE SCREEN, YOU HRVE
HORIZONTRL CURSOR -CONTROL WITH
DELETE CRPRBILITIES WHEN COM-
POSING R NEW LINE OF TEXT,
YOU MRY RLSO ENTER RERD/EDIT
MODE FROM THIS OPTION BY KEY -
5HP "♦E". HOWEVER, WHEN
YOU DO THIS, DO NOT USE THB
?B^J£S^^^^^ IMMEDIRTE-
LY RFTERWRRDS OR BEFORE YOU
WHEN THE LINE BEING TYPED
RERCHES THE 30TH COLUMN THE
SCREEN BLINKS. THIS FERTURE
IS SIMILRR TO THE BELL ON R
TYPEWRITER WHICH SIGNRLS
THRT IT IS TIME TO ENTER R
LINE OF TEXT RND THEN BEGIN R
NEW LINE. RFTER R LINE IS
ENTERED IT IS STORED IN RN
RRRRY FOR FUTURE REFERENCE.
BLRNK LINES RRE ENTERED BY
PRESSING THE ENTER KEY RND
RRE STORED IN THE SRME URY.
IF R LINE LONGER THRN 30
COLUMNS IS ENTERED ONLY THE
^S^^I^^P-.F.S^^^C'^^R LOCRTIONS
OF THE LINE UILL BE STORED RND
PRINTED ON THE SCREEN. BEFORE
RNY LINE IS URITTEN RND
44
ENTERED YOU CRN CRUSE THE
PROGRRM TO REUERT TO THE MENU
BY KEYING *'*M" AND THEN
ENTER. THE PROGRRM WILL RLSQ
RETURN TO MENU IF THE LIME
COUNTER *'K** IS > THRN a^O ,
UNDER THE LRTTER CONDITION THE
INUER5E UIDEO PROMPT UILL
PLRSH INFORMING YOU THAT
THERE RRE NO MORE LINES flURIL-
RBLE. THIS CONDITION CRN BE
REMEDIED BY EXE:RCISING THE
OPTION "CLERR" .
RFTER YOU ENTER R BODY
OF TEXT YOU MRY PROOFRERD IT.
THIS IS UHERE THE "RERD/EDIT '
OPTION COMES IN. ON R PER
LINE BRSIS THE TEXT THRT URS
URITTEN WILL BE DISPLRYED ON
THE SCREEN IN SCROLL FRSHION.
RFTER R LINE IS PRINTED
YOU HRUE 3 SECONDS TO RERD RND
DECIDE IF THE LINE NEEDS EDIT-
ING. IF IT DOES NOT THEN THE
NEXT LINE WILL BE PRINTED, RND
SO ON. IF IT DOES NEED EDIT-
ING YOU THEN PRESS THE ENTER
KEY TO OBTRIN THE EDIT MODE.
THE TEXT EDITOR IS THE HERRT
OF THE PROGRRH* IT HRS 10
DIFFERENT FUNCTIONS. FIRST,
THERE IS THE FUNCTION "CON-
TINUE", WHICH IS GENERRTED BY
ENTERING " «G" • THIS FUNC-
TION RLLOU5 THE TEXT TO CO-
MMENCE BEING RERD RFTER IT URS
STOPPED FROM SCROLLING UP THE
SCREEN WHEN EDIT MODE URS
ACCESSED . SECOND, YOU MAY
•REPLACE" RN ENTIRE LINE OF
TEXT BY ENTERING "*R".
RFTER THIS SYMBOL APPEARS ON
THE SCREEN YOU TYPE RND ENTER
THE NEU LINE. THIRD, THERE IS
A "CHANGE" FUNCTION THAT
PERMITS ONE OR MORE UORDS ,
SYMBOLS OR SPACES TO BE MODI-
FIED. AFTER THE COMMRND "♦C"
IS ENTERED YOU ENTER THE
BLOCK OF CHARACTERS YOU WANT
TO REMOUE FROM THE TEXT. NEXT
YOU PLRCE THE CURSOR UNDER THE
SECOND CHARACTER LOCATION,
FIRST TO THE RIGHT, FROM
THE PLACE ON THE LINE THAT YOU
UANT TO REPLACE THE OLD WORD
OR EXPRESSION UITH A NEW ONE.
AFTER THE CURSOR IS PROPERLY
LOCATED THE SYMBOL IS
TYPED UITH THE NEU WORD OR
EXPRESSION IMMEDIRTELY FOLLOW-
ING . NOW KEY ENTER RND YOU
WILL HflUE YOUR CORRECTION PRO-
PERLY RECORDED, FOURTH,
YOU MRY "DELETE" A LINE THRT
IS FIRST ABOUE THE ENTER LINE
BY KEYING " *D " WHILE IN THE
EDIT MODE WITHOUT LEAUING ANY
GAPS BETWEEN LINES. FIFTH,
n NEW LINE CRN BE "INSERTED
RFTER ONE LINE OR 2^1^?^^
TUG LINES WITHOUT gg^SING RNY
PREEXISTING LINES OF THE TEXT .
YOU TYPE IN THE SYMBOL *I
-f HEN AFTER IT gPf Egg$c=.^X?^THF
«ND ENTER THE CONTENTS OF THE
NEW LINE. SIXTH, BY ENTERING
"*T" THE TEXT WILL BEGIN TO
BE DISPLAYED FROM THE START.
SEUENTH, ANY LINE BEING WORKED
ON BY THE EDITOR MUST ALWAYS
BE THE FIRST LINE ABOUE THE
ENTER LINE. TO RSSIST IN
PUTTING R LINE INTO THIS
PLRCE FOR EDITING A "LIST"
FUNCTION IS AUAILABLE. AFTER
••*L" IS KEYED AND ENTERED
THE LINE NUMBER OF THE FIRST
LINE ABOUE THE ENTER LINE IS
DISPLAYED. IT IS THEN R
MATTER OF COUNTING FROM THRT
LINE NUMBER UPURRD^OR £0"^-
WARD TO DETERMINE THE NUMBER
OF THE LINE YOU ENTER IN ORDER
TO BRING IT INTO POSITION FOR
EDITING. THE LINE NUHBER YOU
TRY TO/ LIST CANNOT BE 195^
1? > a&0 OR > THAN THE LAST
LINE THAT UAS URITTEN UHEN
IN URITE MODE OR ELSE THE PRO-
GRAM UILL CONTINUE TO RSK FOR
R NEU LINE NUMBER ENTRY.
IF YOU KEY IN 0, THEN, THE
PROGRAM RETURNS TO URITE MODE.
EIGHTH, BY KEYING "*U" AND
THEN ENTER THE COMPUTER RE-
TURNS TO URITE MODE UITHOUT
ERASING THE TEXT DISPLRYED ON
THE SCREEN. IT WILL BEGIN TO
URITE R NEU LINE RFTER THE
LINE THAT URS LAST URITTEN.
NINTH, THE PROGRRM INCLUDES
R SPLIT-SCREEN FERTURE UHICH
IS flUAILABLE UHEN THE COMMAND
"*SS" IS KEYED IN DURING
EDIT MODE. THIS FERTURE PER-
MITS TUO HRLF -SCREENS IN ONE
FULL PICTURE SCREEN. TEXT CAN
THEN BE COMPARED ON THE_BRSIS
OF EUERY 10 LINES UITH THE
SAME EDIT FEATURES UUST J>ES-
; CRIBED BEING RUAILRBLE. UHEN
IN SPLIT-SCREEN MODE YOU
OPERATE EACH HALF -SCREEN
EXACTLY AS YOU UOULD ONE FULL-
SCREEN . THE ADUANTRGE OF
SPLIT-SCREEN LIES IN THRT
HIGHER RND LOWER PORTIONS OF
A GIUEN TEXT MRY BE COMPARED
TO FIND GRRMMRTICAL OR SYN-
TACTICAL ERRORS. IT MAY ALSO
BE USED TO READ /EDIT TUO
DOCUMENTS SIMULTANEOUSLY.
IF YOU WRNT TO MOUE THE
TOP-HALF YOU ENTER "T"_RND
TO MOUE THE BOTTOM -HALF YOU
ENTER "B" RFTER 10 LINES OF
4 5
TEXT RRE PRINTED ON THE RES-
PECTIUE SCREEN. RFTER EUERY
10 LINES THRT RRE PRINTED
THE CURSOR RPPERRS RT THE
BOTTOM OF THE SCREEN. RT
THIS TIME (RND SISi UHEIN THE
ENTER KEY IS DEPRESSED TO
RCCE5S EDIT MODE) YOU
HRUE THE CHOICE OF MOUING THE
TOP OR BOTTOM -HRLF OF THE
SCREEN OR STRRTING FROM THE
BEGINNING TO UIEU THE TEXT
BY KEYING "N" OR REUERTING
TO THE MENU BY ENTERING ••*M".
FINRLLY, UHEN YOU URNT
TO RETURN TO THE MENU YOU CRN
DO SO BY ENTERING "*M" UHEN
IN EDIT MODE.
BESIDES ITS PRRCTICRL. UORTH
USING THIS PROGRRM PROUIDES
CERTRIN RDURNTRGES OUER THE
MORE CONUENTIONRL URYS OF
DOING THE RBOUE SRID TRSKS .
SflUINGS IN TIME, PRPER, INK,
PRINTING^ PHOTOCOPIES,
CORRECTING MISTAKES RND RDDING
RFTERTHOUGHTS RRE UUST SOME
OF THE PROCESSES HRNDLED MORE
EFFICIENTLY RND UITH LESS
TROUBLE THRN DOING THEM EITHER
THROUGH HRNDURITING OR USING
R TYPEURITER.
THE REST OF THE OPTIONS RRE
THE "PRINT", "SflUE" RND
•CLERR" FUNCTIONS OF THE
PROGRRM. THEY RRE QUITE BRSIC
IN UHRT THEY DO RND HOU ERCH
DOES UORK. HENCE, NO EXPLRNR-
TION IS NEEDED RS TO HOU TO
USE THEM. JUST ENTER THE DE-
SIGNATED NUMBER RND URIT UNTIL
THE MENU RPPERRS ON THE SCREEN
RGfllN. BE SURE TO TURN ON
YOUR TRPE RECORDER BEFORE YOU
EXECUTE THE 5ROE OPTION,
THE PROGRRM IS, OP COURSE,
COMPATIBLE UITH EITHER THE
2X OR TIMEX PRINTER. UITH THE
ADDITION TO THE COMPUTER OP
EITHER A SERIAL OR PARALLEL
INTERFACE ALONG UITH A MORE
SOPHISTICATED DOT-MfTTRIX
PRINTER THE APPLICATION POS-
SIBILITIES FOR THIS PROGRAM
RRE EUEN GREATER. THE OURLITY
OF OUPUT GENERATED BY THE PRO-
GRAM IS SOMETHING THAT DEPENDS
ON THE INDIUIDUAL TASTE OP THE
USER. HOUEUER, THE CONTENT OF
SRID OUPUT (I.E., UHAT THE ^
PROGRAH CAN BE USED FOR) XS
GENERRLLY OBUIOUS TO ANY USER.
UJord Processing
T/ST€Xr 2000^"
COPYRIGHT (C) 1983
ALBERT F. RODRIGUEZ
PRICE: $19.95 IN CR55ETTE
COMPUTERS: ZX81, TS1000,
TS1500, T52068
LHNGUflGE: SINCLAIR BASIC
ROM/RHM: 8K/16K
LORD NAME: ■"TEXT"
LORD TIME: 5.2)3 MNT5 .
PROGRAM LI5TABLE: NO
PROGRAM LISTINGS: YES, $6.50
EXTRAS: RECORDER AND PRINTER
PROGRAM BYTES; 14- , 823
SYNTACTIC SUM: 4-24,665
LETTERS, REPORTS, ARTICLES,
MEMOS, STANDARD PORHS , MEDIUH
DISPLAYS, INSTRUCTIONS^ NEUS
BULLETINS, CLASSIFIED ADUER-
TISEMENTS, GRAPHS AND CHARTS,
MANUSCRIPTS, LISTS OP CUS-
TOMERS OR FRIENDS OR CLUB
MEMBERS, TELEPHONE RND RDDRE5S
DIRECTORY . . . ETC, , RRE
SOME OF THE MORE PERTINENT..
RERL-LIFE RPPLICATION5 THRT
COME IMMEDIATELY TO MIND.
MJ{. SOFTUJARC®
1 605 PennsylvQnlQ five.. # 204
Miami BcQch. a 33139
(305) 531-6464
aofiiDiflNS noD snL€S trx
D€AL€ft INQUIftlCS UI€LCOM€
46
New Sinclair Newsgroup on USENET
By Tim Swenson
A new newsgroup is now available to those that read USENET
News on the Internt. This new newsgroup comp. sys . Sinclair is for
discussions on all Sinclair computers. It was started by those
interested in the Spectrum and it's emulators, but can be used by
all to discuss any Sinclair computer, including the Z88 and Sir
Clive himself.
Below is a few selections from recent postings to the
newsgroup:
Has anybody here ever used their Sinclair for something other
than what it was originally intended?
Both a friend and I had Sinclairs, and after we'd gotten
bored with them, his father picked up a Timex for $15 in NYC while
on business. Since the Timex had a whopping 2K of memory, instead
of only IK, we turned his Sinclair into a Dalek (enemy robot from
Dr. Who) .
The design was extremely simple, but impressive considering
our lack of $$ and that we were only 16 at the time. The robot
had two servos which we glue-gunned big rubber wheels to, and a
plunger glued to a micro switch. Using 74LS00s for address
decoding and power transistors to drive the servos, if you POKEd a
1 to any address between 32k and 48k, it would drive the left
wheel forward about an inch, POKEd a 2 would drive the other wheel
(and yes, poking 3 would drive them both). Peeking and checking
bit 3 would tell you if the micro switch was open or closed.
The program would move the left and right wheels together,
and then check to see if the switched was closed (dalek had bumbed
into something). If the switch was closed, it would randomly
chose to move only the left or right wheel, enough to turn the
dalek 90 degrees. Then it would continue to lurch forward.
We later modified this thing to operate off of a 12volt
gelcell, and made a little box inside the four foot tall dalek
which enabled us to start the Sinclair and load the program, then
disconnect the monitor and tape recorder and let the thing wobble
around the room until the batteries ran out (about 1 hour). If
we'd had an LCD TV, I'm sure we would have glue-gunned that in as
we 11 .
Dominic Richens (dominic@oeg . car leton. ca)
My dad had the field engineers of General Electric's
Installation and Service Engineering Division using TS 2068's with
the 1967 ASME steam tables & custom software analysing medium
steam turbine performance testing. The binary precision of
floating pt numbers was 32bits as opposed to the IBM floating pt
precision of 21 to 23 (remember the old 1.000001^10 test?), so
double precision wasn't needed.
I helped with some convergence problems going from H,S to
temperature or something like that. I got the number of
47
iterations it took to converge down from somewhere between 60 and
infinity to 6 or less.
It all started when they took his link to the GE timeshare
machine (a teletype and acoustic coupler) away (it was two steps
from his desk) and replaced it with a terminal room two floors up.
Any of you that have had to use terminal rooms know that you often
forget that one sheet of paper and have, to go back to get it - two
floors down. This was 1983 so pc ' s were out, but expensive, and
the ts2068 had failed (no s/w, the bane of all these "great"
pieces of h/w) , and was being sold for $135 including cassette
tape recorder and 40 column thermal printer. It was great, where
a turbine test was all day taking data, that night in a motel
making quick numbers from a Mollier Chart to present to the plant
manager the next day, now within an hour after the test was over
he could place the preliminary report on the plant manager's desk
and head home.
When he told the field service managers that he had a
computer and software to make their FSE's lives easier, they said
"how much?" (the field service units were profit and loss centers
and my dad worked in headquarters i.e. overhead) They were
expecting him to quote a price in a pc or clone, but when he said
$135, they said "Oh, I'll take 2".
If any of you ever get to Cape Hatteras in North Carolina,
USA, stop at the Canadien Hole about a mile north of Buxton and
look for the "Microvan" (Plymouth Horizon) with the anemometer on
a windsurfing mast - the data acquisition system is being run by
one of those ts2068's. There is also a setup at Fox Watersports,
a surf shop in Buxton. That one survived Hurricane Emily last
august, and when the National Weather Service anemometer turned
out to have died just before the worst of it, the NWS and National
Hurricane Center asked my dad for his data. Apparently they are
running fourier transforms on it - this is the first time they
have had hurricane wind speed data in digital formatl It's
available for anon-ftp from moe.tn.conell.edu if you're
interested.
In compiled basic, with a decent a/d chip (the first one used
the AO line for a clock for successive approximation) , and
compiled basic, the setup reads data at around 100 Hz.
My favorite memory is writing a "capture the mouse" game
where you draw lines to force a bouncing pixel into a corner - of
course the interpreted basic was too slow and this was before we
had the compiler, so I tried my hand at machine code - the first
few times you jump into the machine code and the machine hangs, or
reboots, after a few debugging cycles the program seemed to be
working, but I couldn't see the mouse. So I'm digging through the
code trying to find where I'm NOT writing the mouse to the screen,
and suddenly I say, "maybe it is there". I turned off the lights
in the room, turned up the contrast on the crummy b/w telly, and
there, about every dozen pixels or so, and seemingly
simultaneously in several places at once because of phosphor
persistence, is the mouse flying around the screen at warp speed!
Brian Carcich (carcich@cuspif.tn.cornell.edu)
48
I guess everybody has their own Golden Age, when programming
was purely for fun. My experience has been that each home
computer that I buy is more powerful than the last, but I do less
actual programming on it than the one before.
So of course I recall fondly the ZX-81, the machine that I
fitted with a surplus movable key keyboard (with attached Atari
2600 type joystick) and with which I wrote several cool arcade
style games which were never run on anyone else's machine. They
were all in Z80 assembler of course, and WOW was I impressed when
the ole ZX managed to handle 25 concurrently moving robots on the
screen at once (albeit a bit jerkily) .
The assembly code was stored as BASIC REM statements, and was
still so big (I only had 16k) that I had to assemble the program
in two parts, write down the addresses in each part that were
visible to the other half, and manually link them together.
Sometimes a 'build' of the program took over 45 minutes of tape
swapping and cursing.
On one memorable occasion I managed to blow a hole in the
'roof of the screen and some of my robots escaped up (actually I
think it was downwards in the address sense of the word) and off
the screen. So I trundled my player dude (who was an 'A' because
it had two legs) over to the hole and started shooting bullets up
and out of the screen too. "BLAM BLAM BLAM , Get back here! Suck
hot asterisks, you little cowards!" Of course, my executing code
(and variables) were all somewhere up there too. The screen shook
violently several times, and everything became skewed, as if each
screen row had grown by a few characters. But the ZX was tough to
kill, as the game kept running and my bullets could run wild in
all directions now. So I shot up the joint, and after a few more
screenquakes (which were quite amazing to watch, because they
played havoc with the TV's sync pulses) the whole thing locked up.
I almost added the whole scenario into the game as a 'doomsday'
option.
Ah, the luxury of it all: a trusty machine, a wild
imagination, youthful stamina and way too much time on your hands.
"The Sinclair ZX-81: Tough as nails and twice as fast!"
Mike Chapman (mike@snowhite. cis .uoguelph.ca)
HacKer's Journal
Supporting Ali QL Programmers
Timothy C. Swenson, Editor
5615 Botkins Rd.
Huber Heights, OH 45424
(513) 233-2178
swensotc@p2.ams.wpafb af . mil
QL SURVIVORS SOURCE BOOK
2ND EDITION - This book contains worldwide lists of all QL BOOKS; PERIODICALS;
BULLETIN BOARDS; USER GROUPS; HARDWARE and SOFTWARE DEALERS; PUBLIC
DOMAIN and SHAREWARE SUPPLIERS. Nowhere else can you find all of this data in
one easy to use source. This is a work of art by the same great folks that brought you
IQLR. and offered by UPDATE Magazine. When we sell out of current stock It will be gone.
It is now available for only $10.00 US$, and this now includes all postage and handling in
the North and South American areas. Order now and it will be shipped to you by either
First Class Mail or Priority Mail; no more waiting around for slow UPS delivery! Whatever
It Is you are tooking to buy for your QL. this will tell you where to look for it, ak?ng with
phone and fax numbers, as well as addresses.
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
Z88 SOURCE BOOK
This book was complied by Tim Swenson and published by UPDATE Magazine, and was
designed to be a good and concise reference book on the Z88; how to interface it with the
rest of the worlds computers; what products are available for it and where to find them. It
will not replace your Z88 user guide, but will instead supplement it, and fill in areas that
were missing by puning all this Information in one easy to use book. When you order it we
also include a disk of utilities and programs that are discussed in the book. This Is
available In the folkjwlng formats: QL in 3 1/2 1440 or 2880 sector disks; QL in 5 1/4 720 or
1440 sector disks; IBM 360K 5 1/4 disks; IBM 720K 5 1/4 disks; IBM 720K 3 1/2 disks;
IBM 1 .4 meg 3 1 12 disks. Please let us know with your order which type and size of disk
you need. The price for all of this Is $7.00 US$, which includes P. & H. In North America,
and elsewhere $7.00 US$ plus $2.00 US$ for the additional postage we have to pay. We
will accept for foreign orders the cash equivalent, plus 10% for conversion, if you are
unable to obtain a money order or travelers check in US$. We want to make this
information widely available, so we are trying to be as flexible as possible.
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
TS2068 UPDATE ISSUE DISKS
These disks contain at least one major piece of software written
specifically for disk drive and are guaranteed to be worth the money.
The rest of the disks are usually filled with various utility programs
taken from the issues of UPDATE, shareware or public domain. On most
of these, half the money goes to the author and is meant to encourage
new programming for the TS2068 that makes use of the various disk
drive systems. To have your particular disk system supported here
requires that someone write or alter the software from one system to
the other. We are always open to your help and suggestions, but have
limited time and programming resources available here. The prices are
as listed beside each piece of software. We can provide all but 3"
disk formats as far as size and disk density. We accept cash, checks,
money orders and C.O.D.
1) THE WIDJUP COLLECTION, contains most of the popular programs
formerly offered by WIDJUP and written by the late Bill Pedersen. This
is a two disk set, and does not include his CAD Program. It contains
editors, printer drivers, games, TS2068 tutorials, etc. This is a new
release and we will have more about it next issue. In Oliger or Larken
disk formats. The price is $20.
2) WIDJUP' S CAD PROGRAM, a long time favorite that will give you
professional results from your TS2068 in the area of computer aided
design and the development of printed circuits. With the right
graphics it has been also used to print a page for desk top
publishing, or computer art. It requires no expanded memory and is
available for the following setups: (a) Oliger, for either the
Olivetti Ink Jet printer, or for IBM compatible printers, (b) Larken
for IBM compatible printers or for the Olivetti Ink Jet printer.
Please specify disk size, format and printer type. The price is $20.
3) OLIGER DISK DRIVE BBS PROGRAM, this creates a single user BBS
program, with several message bases. E-mail, and SYSOP Chat area. We
have also added many other Oliger disk programs to this collection, as
well as some playtime. This was written by Paul Holmgren. The price is
$20.
4) 24-PIN BIT IMAGE GRAPHICS FOR 24-PIN OR BUBBLE JET PRINTERS, for
Epson emulation modes, by Larry Crawford. This program takes the
mystery out of graphics and some of the newer printers out there on
the market. We also' include some extra software with this one, and for
just $15. It is available in Larken and in Oliger disk formats.
Needless to say we are always interested in a new issue disk we can
present here for our readers, so those who are out there writing
programs , send them to us to look at. This helps to keep the TS2068
aiive. It is also a way to pick up some pocket money. We usually make
royalty payments twice a year based on previous sales.
PL ISSUE DISKS
These disks contain at least one major piece of software written
specifically for disk drive (exceptions are noted) and are guaranteed
to be worth the money. The rest of the disk space is often filled with
various utility programs taken from the issues of UPDATE thrown in.
Half of the money from the sale of these programs goes to the software
author to encourage the creation of more QL software for our readers.
Some of the programs take advantage of Tool Kit 2 by Tony Tebby, and
need it to work. If that is the case, it will be listed in the program
description. The price is listed with each program. They are available
in both 3 1/2 and 5 1/4 disk formats. This is for 360K, 720K and 1.4
meg. If needed on an ED disk, then you must provide. We accept
personal checks, company checks, money orders, cash, and C.O.D.
orders. No charge cards, please.
1) CABLE ARCHIVE ISSUE DISK - Written by Bill Cable. Contains many
useful ARCHIVE programs that work on any ARCHIVE database. The titles
include: DIR (directory within ARCHIVE), SCAN (guick database display
and print), FREQ (Frequency distribution of a field), SPLIT (split 1
database display and print), JOIN (join 2 databases into 1), REFIELD
(redefine field names), REPLACE (replace text within a database),
MATCHER (find duplications in a database), WINDEX (word index any text
file), GROUP 1 , GR0UP2, GR0UP3 (useful procedures from UPDATE
articles), QUERY (interrogate any database). Also included are
extensive DOC files about the programs and about ARCHIVE in general.
The price is $20.
2) QLUSTER 5sl09 ISSUE DISK - This great program by Al Feng provides
you with many utilities to handle and unclutter your disk and
microdrives, and it now supports sub-directories. Some of the features
concern COPY, DELETE, FORMAT, VIEW, as well as extended use of some
TK2 commands (needed for this program). These are TURBO compiled to
add speed to the program. It will multi-task and allows you to use
minimal keypresses to get the job done. This program has had some
major upgrading and bug fixing over the years and is Minerva
compatible. The price is $15.
3) QLuMSi DOS 4.30 ISSUE DISK - Al Feng also extensively updated this
recently. This is both an MSDOS simulator and a front end program for
the QL. It also has other programs on the disk to enhance file
management and the cloning of other programs. Educational as well as
useful. The price is $20.
4) QL COMPENDIUM ISSUE DISK - Now a four disk set of useful programs
and utilities taken from UPDATE, plus the latest file compression and
decompression utilities, Tcopye, Quad Format, C utilites, E-forth, and
alien disk file transfers, and more. The best of UPDATE, shareware and
public domain. Still only $20. $5 for an update for past purchasers.
We here at UPDATE encourage all of you programmers out there to submit
to us possible future Issue Disks, with DOC files. You won^t get rich,
but you will possibly make some money and get to help others. Royalty
payments are usually twice a year, based upon previous sales.